Programowanie w systemie UNIX/Python
Instalacja Edytuj
sudo apt install python-dev
Sprawdzamy Edytuj
W konsoli pythona wpisujemy:
import sys
print(sys.path)
Przykładowy wynik:
['', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/usr/local/lib/python3.6/dist-packages', '/usr/lib/python3/dist-packages']
lub z konsoli [2]:
python3 -m site
Prykłądowy wynik:
sys.path = [
'/home/a',
'/usr/lib/python36.zip',
'/usr/lib/python3.6',
'/usr/lib/python3.6/lib-dynload',
'/usr/local/lib/python3.6/dist-packages',
'/usr/lib/python3/dist-packages',
]
USER_BASE: '/home/a/.local' (exists)
USER_SITE: '/home/a/.local/lib/python3.6/site-packages' (doesn't exist)
ENABLE_USER_SITE: True
Sposoby korzystania z Pythona Edytuj
Ręczne wprowadzanie poleceń Edytuj
Python 2 Edytuj
W konsoli wpisujemy:
python2
Otrzymujemy:
Python 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] on linux2 Type "help", "copyright", "credits" or "license" for more information.
i pojawia się znak:
>>>
Teraz możemy wprowadzać polecenia Pythona
W celu zamknięcia sesji wprowadź skrót klawiszowy Ctrl-Z
Python 3 Edytuj
W konsoli wpisujemy:
python3
Otrzymujemy:
Python 3.6.8 (default, Oct 7 2019, 12:59:55) [GCC 8.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>
Plik z poleceniami Pythona Edytuj
Plik tekstowy a.py
z kodem w Pythonie (rozszerzenie py) uruchamiamy za pomocą komendy:
python a.py
Skrypt z poleceniami Pythona Edytuj
Możemy utworzyć skrypt bashu:[3]
#! /usr/local/bin/python
import sys
if '-h' in sys.argv or '--help' in sys.argv or '--help' in sys.argv:
print '''
help.py--does nothing useful (yet)
options: -h, -help, or --help-display this help
Copyright (c) Jacek Artymiak, 2000 '''
sys.exit(0)
else:
print "I don't recognize this option"
sys.exit(0)
zapisać go jako help.py
nadać mu prawo wykonywalności:
chmod 0700 help.py
i uruchomić go z konsoli:
./help.py -h
lub
./help.py -o
VectorFieldPlot Edytuj
Moduły Edytuj
Menedżery pakietów:
- pip
- pipenv
- Anaconda Navigator
- conda
Moduły do obliczeń równoległych
- ipyparallel
- Dask - Dask to otwarta biblioteka Pythona do obliczeń równoległych. Dask skaluje kod Pythona z wielordzeniowych maszyn lokalnych do dużych rozproszonych klastrów w chmurze. Dask zapewnia znajomy interfejs użytkownika, odzwierciedlając interfejsy API innych bibliotek w ekosystemie PyData, w tym: Pandas, scikit-learn i NumPy. Udostępnia również interfejsy API niskiego poziomu, które pomagają programistom równolegle uruchamiać niestandardowe algorytmy.
gmpy Edytuj
wersje
- gmpy
- gmpy2
pomoc:[4]
import gmpy # import(gmpy)
help(gmpy)
Manim Edytuj
matplotlib Edytuj
instalacja :
sudo apt-get install python3-matplotlib
użycie
python3
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib.pyplot as plt
moduł colors Edytuj
numpy Edytuj
Instalacja[5]
pip3 install numpy
pip3 show numpy
OpenCV Edytuj
sudo apt-get install python3-opencv
Program do analizy obrazu[6]
- nie korzysta z pętli fo i CPU ( są one powolne i podatne na błędy )
- wykorzystuje wektoryzację z pomocą bibliotek Numpy lub OpenCV.
import cv2
import numpy as np
# Load image
im = cv2.imread('Mushroom1.jpg', cv2.IMREAD_GRAYSCALE)
# Calculate total number of pixels in image
nPixels = im.size
# Iterate over the possible threshold values, skipping 10 at a time for speed of development/checking
for T in range(1,255,10):
# Make all pixels under threshold black, leaving those above threshold unchanged
thresholded = (im < T) * im
# Count the non-zero pixels
nonZero = cv2.countNonZero(thresholded)
Zero = nPixels - nonZero
# Sum the non-zero pixels
sum = np.sum(thresholded)
# Print some statistics
print(f'T={T}, zero={Zero}, nonZero={nonZero}, sum={sum}')
# Save the image for animation
cv2.imwrite(f'DEBUG-T{T:03}.png', thresholded)
Zobacz również stronę OpenCV
scikit-image Edytuj
scikit-image is a collection of algorithms for image processing.
scipy Edytuj
Instalacja: [7]
sudo apt-get install python-scipy sudo pip install scipy
PyOpenGL Edytuj
opis[8]
PyOpenCL Edytuj
apt-get install python-pyopencl
pip Edytuj
Instalujemy python-pip i python-setuptools:[9]
sudo apt-get install python-pip
uaktualnij pip[10]
pip install --upgrade pip
pip3 Edytuj
Instalacja
sudo apt install python3-pip
Wersja
pip3 -V
plotoptix Edytuj
- plotoptix Data visualisation and ray tracing in Python based on NVIDIA OptiX framework.
- Images with src code
-
-
-
-
-
seaborn Edytuj
- [1] statistical data visualization
gr Edytuj
Gr [11]
vedo Edytuj
- vedo A python module for scientific analysis of 3D data based on VTK and Numpy
vedo https://vedo.embl.es/examples/data/panther.stl.gz
Powłoki Edytuj
iPython Edytuj
IPython (Interactive Python)[12] – interaktywna powłoka dla języka Python, o dodatkowych elementach składni i poszerzonych możliwościach:
- Powłoki interaktywne (oparte na terminalu i Qt)
- Oparty na przeglądarce interfejs notebooka, w tym dla Jupyter ( IPython jako powłoka i jądro Pythona dla Jupytera )
- Obsługa interaktywnej wizualizacji danych i korzystania z zestawów narzędzi GUI
- Elastyczne, wbudowane interpretery do załadowania do własnych projektów
- Narzędzia do obliczeń równoległych.
Instalacja Edytuj
- w wirtualnym środowisku zalecany sposób
- pip
- docker-ipython- Run IPython inside Docker
- Anaconda (Python distribution) - Anaconda to dystrybucja języków programowania Python i R do obliczeń naukowych (nauka o danych, aplikacje do uczenia maszynowego, przetwarzanie danych na dużą skalę, analizy predykcyjne itp.), Które mają na celu uproszczenie zarządzania pakietami i wdrażania
pip install ipython sudo pip install ipython
W wirtualnym środowisku:
mkdir virtual_environment sudo apt install python3.10-venv python3 -m venv virtual_environment
Aktywujemy wirtualne środowisko:
source ~/virtual_environment/bin/activate
Pracujemy, instalujemy pakiety w środowisku wirtualnym
Zamykamy:
deactivate
Architektura Edytuj
Integracja kolejki komunikatów ØMQ (por. Message Oriented Middleware) wyraźnie oddziela backend jako jednostkę obliczeniową, taką jak interpreter Pythona, od frontendu jako poziomu wyświetlania. Ta separacja pozwala na uniwersalne użycie IPython dla różnych backendów (często nazywanych także jądrem) i frontendów. Z pomocą opartego na zdarzeniach serwera sieciowego Python Tornado i WebSockets, interfejs sieciowy stanowi możliwy front-end, co pozwala na elastyczne wykorzystanie IPython w nowoczesnej sieci (Web 2.0).
Notatnik Edytuj
IPython jest zorientowany na dokumenty. Dokument IPython jest określany jako notatnik, jak zwykle w środowisku naukowym. Notatnik to plik JSON zawierający uporządkowaną listę komórek wejściowych i wyjściowych, które mogą reprezentować kod, zwykły tekst, dane wyjściowe LaTeX, wykresy i różne formaty multimediów. Oznacza to, że notatnik IPython zasadniczo różni się od prostego skryptu Pythona, który (zwykle) zawiera tylko kod. Począwszy od wersji 4.0, projekt jako całość został podzielony i dodatkowo zmodularyzowany. IPython nie jest już dystrybuowany jako pojedynczy, monolityczny pakiet, ale jest teraz ograniczony do podstawowych komponentów powiązanych z Pythonem. Z drugiej strony wszystkie moduły niezależne od języka (takie jak notebook, Qtconsole i kolejka komunikatów) zostały zlecone do nowego projektu o nazwie Jupyter i dlatego mogą być również używane i aktualizowane niezależnie od IPython w przyszłości. ]
IPython został opracowany w 2001 roku przez Fernando Péreza, wywodzi się z dziedziny obliczeń naukowych, ponieważ znał notatnik z Mathematica i brakowało mu tego w Pythonie, zaczął programować jeden dla Pythona. Integracja Matplotlib z interfejsem notebooka czyni go otwartym konkurentem dla popularnego oprogramowania numerycznego Matlab, dlatego połączenie IPython i Matplotlib jest często określane jako Pylab.
-
Schemat pracy ( ang. Workflow ) Przepływy pracy IPython Notebook od wejścia do wyjścia
uruchamiamy Edytuj
(virtual_environment) a@zalman:~$ ipython Python 3.10.6 (main, May 29 2023, 11:10:38) [GCC 11.3.0] Type 'copyright', 'credits' or 'license' for more information IPython 8.14.0 -- An enhanced Interactive Python. Type '?' for help. In [1]:
Lista pakietów Edytuj
pip list Package Version ----------------- ------- asttokens 2.2.1 backcall 0.2.0 decorator 5.1.1 executing 1.2.0 ipython 8.14.0 jedi 0.18.2 matplotlib-inline 0.1.6 parso 0.8.3 pexpect 4.8.0 pickleshare 0.7.5 pip 22.0.2 prompt-toolkit 3.0.38 ptyprocess 0.7.0 pure-eval 0.2.2 Pygments 2.15.1 setuptools 59.6.0 six 1.16.0 stack-data 0.6.2 traitlets 5.9.0 wcwidth 0.2.6
pip list --local[13]
import pkg_resources installed_packages = pkg_resources.working_set installed_packages_list = sorted(["%s==%s" % (i.key, i.version) for i in installed_packages]) print(installed_packages_list)
Lub:[14]
help("modules") Please wait a moment while I gather a list of all available modules... IPython _thread glob rlcompleter __future__ _threading_local graphlib runpy _abc _tkinter grp sched _aix_support _tracemalloc gzip secrets _ast _uuid hashlib select _asyncio _warnings heapq selectors _bisect _weakref hmac setuptools _blake2 _weakrefset html shelve _bootsubprocess _xxsubinterpreters http shlex _bz2 _xxtestfuzz imaplib shutil _codecs _zoneinfo imghdr signal _codecs_cn abc imp site _codecs_hk aifc importlib sitecustomize _codecs_iso2022 antigravity inspect six _codecs_jp argparse io smtpd _codecs_kr array ipaddress smtplib _codecs_tw ast itertools sndhdr _collections asttokens jedi socket _collections_abc asynchat json socketserver _compat_pickle asyncio keyword spwd _compression asyncore lib2to3 sqlite3 _contextvars atexit linecache sre_compile _crypt audioop locale sre_constants _csv backcall logging sre_parse _ctypes base64 lzma ssl _ctypes_test bdb mailbox stack_data _curses binascii mailcap stat _curses_panel binhex marshal statistics _datetime bisect math string _dbm builtins matplotlib_inline stringprep _decimal bz2 mimetypes struct _distutils_hack cProfile mmap subprocess _distutils_system_mod calendar modulefinder sunau _elementtree cgi multiprocessing symtable _functools cgitb netrc sys _gdbm chunk nis sysconfig _hashlib cmath nntplib syslog _heapq cmd ntpath tabnanny _imp code nturl2path tarfile _io codecs numbers telnetlib _json codeop opcode tempfile _locale collections operator termios _lsprof colorsys optparse test _lzma compileall os textwrap _markupbase concurrent ossaudiodev this _md5 configparser parso threading _multibytecodec contextlib pathlib time _multiprocessing contextvars pdb timeit _opcode copy pexpect tkinter _operator copyreg pickle token _osx_support crypt pickleshare tokenize _pickle csv pickletools trace _posixshmem ctypes pip traceback _posixsubprocess curses pipes tracemalloc _py_abc dataclasses pkg_resources traitlets _pydecimal datetime pkgutil tty _pyio dbm platform turtle _queue decimal plistlib types _random decorator poplib typing _sha1 difflib posix unicodedata _sha256 dis posixpath unittest _sha3 distutils pprint urllib _sha512 doctest profile uu _signal email prompt_toolkit uuid _sitebuiltins encodings pstats venv _socket ensurepip pty warnings _sqlite3 enum ptyprocess wave _sre errno pure_eval wcwidth _ssl executing pwd weakref _stat faulthandler py_compile webbrowser _statistics fcntl pyclbr wsgiref _string filecmp pydoc xdrlib _strptime fileinput pydoc_data xml _struct fnmatch pyexpat xmlrpc _symtable fractions pygments xxlimited _sysconfigdata__linux_x86_64-linux-gnu ftplib queue xxlimited_35 _sysconfigdata__x86_64-linux-gnu functools quopri xxsubtype _testbuffer gc random zipapp _testcapi genericpath re zipfile _testimportmultiple getopt readline zipimport _testinternalcapi getpass reprlib zlib _testmultiphase gettext resource zoneinfo Enter any module name to get more help. Or, type "modules spam" to search for modules whose name or summary contain the string "spam".
Zobacz również Edytuj
Odnośniki Edytuj
- ↑ Configuring Ubuntu for Python Development
- ↑ stackoverflow question : how-do-i-find-the-location-of-my-python-site-packages-directory
- ↑ Python Programming for Beginners May 01, 2000 By Jacek Artymiak
- ↑ stackoverflow question: gmpy-documentation-anywhere
- ↑ unixcop : how-to-install-numpy-on-ubuntu
- ↑ stackoverflow question: is-there-any-good-command-to-get-pixels-gray-value-in-this-case-im-working-on
- ↑ stackoverflow question : importerror-no-module-named-scipy
- ↑ PyOPenGl by ElieDeBrauwer
- ↑ Installing pip/setuptools/wheel with Linux Package Managers
- ↑ Wheel A built-package format for Python.
- ↑ GR is a universal framework for cross-platform visualization applications.
- ↑ ipython - strona domowa
- ↑ activestate: how-to-list-installed-python-packages ?
- ↑ stackoverflow question: how-can-i-see-my-installed-libraries-in-python ?
- ↑ PyOpenCL by Andreas Klöckner
- ↑ PyCUDA by Andreas Klöckner