Matematikai Algoritmusok és Felfedezések II.

2. Python csomagok, virtuális környezetek.

2021 szeptember 16.

Kitérő: PATH változó

Ha el akarunk indítani egy programot, akkor az operációs rendszer alapvetően abban a mappában keresi a programot, ahol kiadtuk az indítási parancsot. Ha szeretnénk, hogy máshol is keressen akkor a PATH változóban kell megadni a keresési mappákat.

In [1]:
!echo %PATH%
C:\ProgramData\Anaconda3;C:\ProgramData\Anaconda3\Library\mingw-w64\bin;C:\ProgramData\Anaconda3\Library\usr\bin;C:\ProgramData\Anaconda3\Library\bin;C:\ProgramData\Anaconda3\Scripts;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Calibre2\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\MiKTeX\miktex\bin\x64\;c:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;c:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Users\P lv”lgyi D”m”t”r\AppData\Local\Microsoft\WindowsApps;C:\Users\P lv”lgyi D”m”t”r\Desktop\ffmpeg\bin;
In [2]:
!echo %PATH:;=&echo.%
C:\ProgramData\Anaconda3
C:\ProgramData\Anaconda3\Library\mingw-w64\bin
C:\ProgramData\Anaconda3\Library\usr\bin
C:\ProgramData\Anaconda3\Library\bin
C:\ProgramData\Anaconda3\Scripts
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\Wbem
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\Program Files (x86)\Calibre2\
C:\WINDOWS\System32\OpenSSH\
C:\Program Files\Intel\WiFi\bin\
C:\Program Files\Common Files\Intel\WirelessCommon\
C:\Program Files\MiKTeX\miktex\bin\x64\
c:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL
c:\Program Files\Intel\Intel(R) Management Engine Components\DAL
C:\Users\P lv”lgyi D”m”t”r\AppData\Local\Microsoft\WindowsApps
C:\Users\P lv”lgyi D”m”t”r\Desktop\ffmpeg\bin

Egy pythonosabb megoldás:

In [12]:
import os
os.environ['PATH']
Out[12]:
'C:\\ProgramData\\Anaconda3;C:\\ProgramData\\Anaconda3\\Library\\mingw-w64\\bin;C:\\ProgramData\\Anaconda3\\Library\\usr\\bin;C:\\ProgramData\\Anaconda3\\Library\\bin;C:\\ProgramData\\Anaconda3\\Scripts;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\;C:\\Program Files\\PuTTY\\;C:\\WINDOWS\\System32\\OpenSSH\\;C:\\Program Files\\TortoiseSVN\\bin;C:\\Users\\Damásdi Gábor\\AppData\\Local\\Microsoft\\WindowsApps;C:\\Users\\Damásdi Gábor\\AppData\\Local\\Programs\\MiKTeX 2.9\\miktex\\bin\\x64\\;C:\\Users\\Damásdi Gábor\\AppData\\Local\\Pandoc\\'

Programozás Jupyter nélkül

Python scriptek

Általában a kiterjesztés .py

Futtatás: python file.py vagy python3 file.py

Eredmény fájlba írása: python file.py > kimenet.txt

Parancssori argumentumokat

A sys modult használhatjuk, egy listát kapunk melyhez sys.argv módon férhetünk hozzá.

A parancssori argumentumokat stringként olvassa be!

Saját modul írása

Egy module semmi más csak egy python script.

Egy csomag (package) több modulból álló rendszer.

Modulok használata

Module Search Path

Nagyjából úgy működik mint a szokásos PATH változó, a megadott helyeken keresi a python modulokat. Három helyen keres:

  • Az adott mappa
  • A PYTHONPATH környezeti változóba elmentett mappákban
  • Python instalálástól függő beállított mappákban
In [3]:
import sys
sys.path
Out[3]:
['C:\\Users\\Pálvölgyi Dömötör\\Desktop\\ujdropbox\\Dropbox\\egyetem\\python\\202122\\orak',
 'C:\\ProgramData\\Anaconda3\\python37.zip',
 'C:\\ProgramData\\Anaconda3\\DLLs',
 'C:\\ProgramData\\Anaconda3\\lib',
 'C:\\ProgramData\\Anaconda3',
 '',
 'C:\\Users\\Pálvölgyi Dömötör\\AppData\\Roaming\\Python\\Python37\\site-packages',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\win32\\lib',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\Pythonwin',
 'C:\\ProgramData\\Anaconda3\\lib\\site-packages\\IPython\\extensions',
 'C:\\Users\\Pálvölgyi Dömötör\\.ipython']

A 'PYTHONPATH' a PATH változóval azonos módon beállítható.

import os os.environ['PYTHONPATH']

__name__ használata

A __name__ változó a modul nevére állítódik be, kivéve ha közvetlenül a modult futtatjuk. Ekkor __main__ lesz. Így megadhatunk olyan kódot, ami importáláskor nem fut le:

if __name__ == "__main__":

Alapvető szerkezet:

packaging_tutorial/ ├── LICENSE ├── pyproject.toml ├── README.md ├── setup.cfg ├── src/ │ └── example_package/ │ ├── __init__.py │ └── example.py └── tests/

Fontos! Ebben az esetben import example_package parancsal tudunk majd importálni, attól függetlenül, hogy milyen nevet adunk majd a packagenek.

LICENSE példa:

Copyright (c) 2018 The Python Packaging Authority

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

pyproject.toml tartalmazza azokat az információkat amik package futtatásához kellenek a pip (vagy build) számára. Pl setuptools használata esetén:

[build-system] requires = [ "setuptools>=42", "wheel" ] build-backend = "setuptools.build_meta"

README.md

# Example Package This is a simple example package. You can use [Github-flavored Markdown](https://guides.github.com/features/mastering-markdown/) to write your content.

setup.cfg

metaadatokat tartalmaz. Pl:

[metadata]
name = example-pkg-YOUR-USERNAME-HERE
version = 0.0.1
author = Example Author
author_email = author@example.com
description = A small example package
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/pypa/sampleproject
project_urls =
    Bug Tracker = https://github.com/pypa/sampleproject/issues
classifiers =
    Programming Language :: Python :: 3
    License :: OSI Approved :: MIT License
    Operating System :: OS Independent

[options]
package_dir =
    = src
packages = find:
python_requires = >=3.6

[options.packages.find]
where = src

distribution package generálása

python -m build

Feltöltés teszt pypi-ba

Regisztrálni kell a testpypi oldalon. https://test.pypi.org/

python -m twine upload --repository testpypi dist/*

Felhasználó név: __token__

Jelszó: a saját tokened, amit itt tudsz megszerezni: https://test.pypi.org/manage/account/#api-tokens

Instalálás a tesztoldalról

pip install --index-url https://test.pypi.org/simple/ --no-deps example-pkg-name

Ami gondot okozhat

  • A fájlok kiterjesztése legyen megfelelő
  • Importálásnál figyeljünk a névre
  • A token beírásánl ctrl-c ctrl-v nem mindig működik
  • Látszólag minden jó, még a pip listában is ott a csomag, mégsem működik. Ellenőrizd, hogy a modul tényleg a gépeden van.

Virtuális környezetek (virtual environment)

https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

A virtuális környezetek lényege, hogy könnyebben tudjuk a packageket/modulokat rendszerezni és használni. Minden egyes környezetben a többitől függetlenül lehetnek csomagjaink. Így például nem okoz gondot, ha különböző projektek egy adott csomagnak különböző verziót használják.

Több lehetőség van környezetek létrehozására, mi most a conda-t nézzük meg.

Alapvetően az envs mappába instalálódnak a környezetek.

  • Létrehozás: !conda create --name korny_nev

  • conda create -n myenv python=3.6 scipy=0.15.0 astroid babel

  • Váltás adott környezetre: conda activate korny_nev

  • Kikapcsolás conda deactivate

Környezetek listája:

In [18]:
!conda env list
# conda environments:
#
base                  *  C:\ProgramData\Anaconda3

Adott környezet moduljai:

In [19]:
!conda list -n base
# packages in environment at C:\ProgramData\Anaconda3:
#
# Name                    Version                   Build  Channel
_ipyw_jlab_nb_ext_conf    0.1.0                    py37_0  
alabaster                 0.7.12                   py37_0  
altgraph                  0.17.2                   pypi_0    pypi
anaconda                  2019.07                  py37_0  
anaconda-client           1.7.2                    py37_0  
anaconda-navigator        1.9.7                    py37_0  
anaconda-project          0.8.3                      py_0  
argparse                  1.4.0                    pypi_0    pypi
asn1crypto                0.24.0                   py37_0  
astroid                   2.2.5                    py37_0  
astropy                   3.2.1            py37he774522_0  
atomicwrites              1.3.0                    py37_1  
attrs                     19.1.0                   py37_1  
babel                     2.7.0                      py_0  
backcall                  0.1.0                    py37_0  
backports                 1.0                        py_2  
backports.functools_lru_cache 1.5                        py_2  
backports.os              0.1.1                    py37_0  
backports.shutil_get_terminal_size 1.0.0                    py37_2  
backports.tempfile        1.0                        py_1  
backports.weakref         1.0.post1                  py_1  
beautifulsoup4            4.7.1                    py37_1  
bitarray                  0.9.3            py37he774522_0  
bkcharts                  0.2                      py37_0  
blas                      1.0                         mkl  
bleach                    3.1.0                    py37_0  
blosc                     1.16.3               h7bd577a_0  
bokeh                     1.2.0                    py37_0  
boto                      2.49.0                   py37_0  
bottleneck                1.2.1            py37h452e1ab_1  
branca                    0.3.1                    pypi_0    pypi
bzip2                     1.0.8                he774522_0  
ca-certificates           2019.5.15                     0  
certifi                   2019.6.16                py37_0  
cffi                      1.12.3           py37h7a1dbc1_0  
cftime                    1.5.0                    pypi_0    pypi
chardet                   3.0.4                    py37_1  
click                     7.0                      py37_0  
cloudpickle               1.2.1                      py_0  
clyent                    1.2.2                    py37_1  
colorama                  0.4.1                    py37_0  
colour                    0.1.5                    pypi_0    pypi
comtypes                  1.1.7                    py37_0  
conda                     4.7.10                   py37_0  
conda-build               3.18.8                   py37_0  
conda-env                 2.6.0                         1  
conda-package-handling    1.3.11                   py37_0  
conda-verify              3.4.2                      py_1  
console_shortcut          0.1.1                         3  
contextlib2               0.5.5                    py37_0  
cryptography              2.7              py37h7a1dbc1_0  
curl                      7.65.2               h2a8f88b_0  
cycler                    0.10.0                   py37_0  
cython                    0.29.12          py37ha925a31_0  
cytoolz                   0.10.0           py37he774522_0  
dask                      2.1.0                      py_0  
dask-core                 2.1.0                      py_0  
decorator                 4.4.0                    py37_1  
defusedxml                0.6.0                      py_0  
distributed               2.1.0                      py_0  
docutils                  0.14                     py37_0  
entrypoints               0.3                      py37_0  
et_xmlfile                1.0.1                    py37_0  
example-pkg-damasdigabor  0.0.1                    pypi_0    pypi
exampledamasdigabor       0.0.1                    pypi_0    pypi
fastcache                 1.1.0            py37he774522_0  
filelock                  3.0.12                     py_0  
flask                     1.1.1                      py_0  
freetype                  2.9.1                ha9979f8_1  
future                    0.17.1                   py37_0  
get_terminal_size         1.0.0                h38e98db_0  
gevent                    1.4.0            py37he774522_0  
glob2                     0.7                        py_0  
greenlet                  0.4.15           py37hfa6e2cd_0  
h5py                      2.9.0            py37h5e291fa_0  
hdf5                      1.10.4               h7ebc959_0  
heapdict                  1.0.0                    py37_2  
html5lib                  1.0.1                    py37_0  
icc_rt                    2019.0.0             h0cc432a_1  
icu                       58.2                 ha66f8fd_1  
idna                      2.8                      py37_0  
imageio                   2.5.0                    py37_0  
imagesize                 1.1.0                    py37_0  
importlib-metadata        0.17                     pypi_0    pypi
importlib_metadata        0.17                     py37_1  
intel-openmp              2019.4                      245  
ipycanvas                 0.4.2                    pypi_0    pypi
ipykernel                 5.1.1            py37h39e3cac_0  
ipyleaflet                0.12.1                   pypi_0    pypi
ipython                   7.6.1            py37h39e3cac_0  
ipython_genutils          0.2.0                    py37_0  
ipywidgets                7.5.0                      py_0  
isort                     4.3.21                   py37_0  
itsdangerous              1.1.0                    py37_0  
jdcal                     1.4.1                      py_0  
jedi                      0.13.3                   py37_0  
jinja2                    2.10.1                   py37_0  
joblib                    0.13.2                   py37_0  
jpeg                      9b                   hb83a4c4_2  
json5                     0.8.4                      py_0  
jsonschema                3.0.1                    py37_0  
jupyter                   1.0.0                    py37_7  
jupyter_client            5.3.1                      py_0  
jupyter_console           6.0.0                    py37_0  
jupyter_core              4.5.0                      py_0  
jupyterlab                1.0.2            py37hf63ae98_0  
jupyterlab_server         1.0.0                      py_0  
keyring                   18.0.0                   py37_0  
kiwisolver                1.1.0            py37ha925a31_0  
krb5                      1.16.1               hc04afaa_7  
lazy-object-proxy         1.4.1            py37he774522_0  
libarchive                3.3.3                h0643e63_5  
libcurl                   7.65.2               h2a8f88b_0  
libiconv                  1.15                 h1df5818_7  
liblief                   0.9.0                ha925a31_2  
libpng                    1.6.37               h2a8f88b_0  
libsodium                 1.0.16               h9d3ae62_0  
libssh2                   1.8.2                h7a1dbc1_0  
libtiff                   4.0.10               hb898794_2  
libxml2                   2.9.9                h464c3ec_0  
libxslt                   1.1.33               h579f668_0  
llvmlite                  0.29.0           py37ha925a31_0  
locket                    0.2.0                    py37_1  
lxml                      4.3.4            py37h1350720_0  
lz4-c                     1.8.1.2              h2fa13f4_0  
lzo                       2.10                 h6df0209_2  
m2w64-gcc-libgfortran     5.3.0                         6  
m2w64-gcc-libs            5.3.0                         7  
m2w64-gcc-libs-core       5.3.0                         7  
m2w64-gmp                 6.1.0                         2  
m2w64-libwinpthread-git   5.0.0.4634.697f757               2  
markupsafe                1.1.1            py37he774522_0  
matplotlib                3.1.0            py37hc8f65d3_0  
mccabe                    0.6.1                    py37_1  
menuinst                  1.4.16           py37he774522_0  
mistune                   0.8.4            py37he774522_0  
mkl                       2019.4                      245  
mkl-service               2.0.2            py37he774522_0  
mkl_fft                   1.0.12           py37h14836fe_0  
mkl_random                1.0.2            py37h343c172_0  
mock                      3.0.5                    py37_0  
more-itertools            7.0.0                    py37_0  
mpmath                    1.1.0                    py37_0  
msgpack-python            0.6.1            py37h74a9793_1  
msys2-conda-epoch         20160418                      1  
multipledispatch          0.6.0                    py37_0  
navigator-updater         0.2.1                    py37_0  
nbconvert                 5.5.0                      py_0  
nbformat                  4.4.0                    py37_0  
nbopen                    0.6                      pypi_0    pypi
netcdf4                   1.5.7                    pypi_0    pypi
networkx                  2.3                        py_0  
newdamasdi                0.0.1                    pypi_0    pypi
newdamasdiabcd            0.0.1                    pypi_0    pypi
nltk                      3.4.4                    py37_0  
nose                      1.3.7                    py37_2  
notebook                  6.0.0                    py37_0  
numba                     0.44.1           py37hf9181ef_0  
numexpr                   2.6.9            py37hdce8814_0  
numpy                     1.16.4           py37h19fb1c0_0  
numpy-base                1.16.4           py37hc3f5095_0  
numpydoc                  0.9.1                      py_0  
olefile                   0.46                     py37_0  
openpyxl                  2.6.2                      py_0  
openssl                   1.1.1c               he774522_1  
packaging                 19.0                     py37_0  
pandas                    0.24.2           py37ha925a31_0  
pandoc                    2.2.3.2                       0  
pandocfilters             1.4.2                    py37_1  
parso                     0.5.0                      py_0  
partd                     1.0.0                      py_0  
path.py                   12.0.1                     py_0  
pathlib2                  2.3.4                    py37_0  
patsy                     0.5.1                    py37_0  
pefile                    2021.9.3                 pypi_0    pypi
pep8                      1.7.1                    py37_0  
pickleshare               0.7.5                    py37_0  
pillow                    6.1.0            py37hdc69c19_0  
pip                       19.1.1                   py37_0  
pkginfo                   1.5.0.1                  py37_0  
pluggy                    0.12.0                     py_0  
ply                       3.11                     py37_0  
powershell_shortcut       0.0.1                         2  
prometheus_client         0.7.1                      py_0  
prompt_toolkit            2.0.9                    py37_0  
psutil                    5.6.3            py37he774522_0  
py                        1.8.0                    py37_0  
py-lief                   0.9.0            py37ha925a31_2  
pycairo                   1.19.1                   pypi_0    pypi
pycodestyle               2.5.0                    py37_0  
pycosat                   0.6.3            py37hfa6e2cd_0  
pycparser                 2.19                     py37_0  
pycrypto                  2.6.1            py37hfa6e2cd_9  
pycurl                    7.43.0.3         py37h7a1dbc1_0  
pyflakes                  2.1.1                    py37_0  
pygments                  2.4.2                    pypi_0    pypi
pyinstaller               4.5.1                    pypi_0    pypi
pyinstaller-hooks-contrib 2021.3                   pypi_0    pypi
pylint                    2.3.1                    py37_0  
pyodbc                    4.0.26           py37ha925a31_0  
pyopenssl                 19.0.0                   py37_0  
pyparsing                 2.4.0                      py_0  
pyqt                      5.9.2            py37h6538335_2  
pyreadline                2.1                      py37_1  
pyrsistent                0.14.11          py37he774522_0  
pysocks                   1.7.0                    py37_0  
pytables                  3.5.2            py37h1da0976_1  
pytest                    5.0.1                    py37_0  
pytest-arraydiff          0.3              py37h39e3cac_0  
pytest-astropy            0.5.0                    py37_0  
pytest-doctestplus        0.3.0                    py37_0  
pytest-openfiles          0.3.2                    py37_0  
pytest-remotedata         0.3.1                    py37_0  
python                    3.7.3                h8c8aaf0_1  
python-dateutil           2.8.0                    py37_0  
python-graphviz           0.13.2                   pypi_0    pypi
python-libarchive-c       2.8                     py37_11  
pytz                      2019.1                     py_0  
pywavelets                1.0.3            py37h8c2d366_1  
pywin32                   223              py37hfa6e2cd_1  
pywin32-ctypes            0.2.0                    pypi_0    pypi
pywinpty                  0.5.5                 py37_1000  
pyyaml                    5.1.1            py37he774522_0  
pyzmq                     18.0.0           py37ha925a31_0  
qt                        5.9.7            vc14h73c81de_0  
qtawesome                 0.5.7                    py37_1  
qtconsole                 4.5.1                      py_0  
qtpy                      1.8.0                      py_0  
requests                  2.22.0                   py37_0  
requests-toolbelt         0.9.1                    pypi_0    pypi
rise                      5.7.1                    pypi_0    pypi
rope                      0.14.0                     py_0  
ruamel_yaml               0.15.46          py37hfa6e2cd_0  
scikit-image              0.15.0           py37ha925a31_0  
scikit-learn              0.21.2           py37h6288b17_0  
scipy                     1.2.1            py37h29ff71c_0  
seaborn                   0.9.0                    py37_0  
send2trash                1.5.0                    py37_0  
setuptools                41.0.1                   py37_0  
simplegeneric             0.8.1                    py37_2  
singledispatch            3.4.0.3                  py37_0  
sip                       4.19.8           py37h6538335_0  
six                       1.12.0                   py37_0  
snappy                    1.1.7                h777316e_3  
snowballstemmer           1.9.0                      py_0  
sortedcollections         1.1.2                    py37_0  
sortedcontainers          2.1.0                    py37_0  
soupsieve                 1.8                      py37_0  
sphinx                    2.1.2                      py_0  
sphinxcontrib             1.0                      py37_1  
sphinxcontrib-applehelp   1.0.1                      py_0  
sphinxcontrib-devhelp     1.0.1                      py_0  
sphinxcontrib-htmlhelp    1.0.2                      py_0  
sphinxcontrib-jsmath      1.0.1                      py_0  
sphinxcontrib-qthelp      1.0.2                      py_0  
sphinxcontrib-serializinghtml 1.1.3                      py_0  
sphinxcontrib-websupport  1.1.2                      py_0  
spyder                    3.3.6                    py37_0  
spyder-kernels            0.5.1                    py37_0  
sqlalchemy                1.3.5            py37he774522_0  
sqlite                    3.29.0               he774522_0  
statsmodels               0.10.0           py37h8c2d366_0  
sympy                     1.4                      py37_0  
tblib                     1.4.0                      py_0  
terminado                 0.8.2                    py37_0  
testpath                  0.4.2                    py37_0  
tk                        8.6.8                hfa6e2cd_0  
tomli                     1.2.1                    pypi_0    pypi
toolz                     0.10.0                     py_0  
tornado                   6.0.3            py37he774522_0  
tqdm                      4.32.1                     py_0  
traitlets                 4.3.2                    py37_0  
traittypes                0.2.1                    pypi_0    pypi
typing-extensions         3.10.0.2                 pypi_0    pypi
unicodecsv                0.14.1                   py37_0  
urllib3                   1.24.2                   py37_0  
vc                        14.1                 h0510ff6_4  
vs2015_runtime            14.15.26706          h3a45250_4  
wcwidth                   0.1.7                    py37_0  
webencodings              0.5.1                    py37_1  
werkzeug                  0.15.4                     py_0  
wheel                     0.33.4                   py37_0  
widgetsnbextension        3.5.0                    py37_0  
wikipedia                 1.4.0                    pypi_0    pypi
win_inet_pton             1.1.0                    py37_0  
win_unicode_console       0.5                      py37_0  
wincertstore              0.2                      py37_0  
winpty                    0.4.3                         4  
wrapt                     1.11.2           py37he774522_0  
xarray                    0.14.1                   pypi_0    pypi
xlrd                      1.2.0                    py37_0  
xlsxwriter                1.1.8                      py_0  
xlwings                   0.15.8                   py37_0  
xlwt                      1.3.0                    py37_0  
xz                        5.2.4                h2fa13f4_4  
yaml                      0.1.7                hc54c509_2  
zeromq                    4.3.1                h33f27b4_3  
zict                      1.0.0                      py_0  
zipp                      0.5.1                      py_0  
zlib                      1.2.11               h62dcd97_3  
zstd                      1.3.7                h508b16e_0  

Mindeféle egyebeket is lehet, például:

  • környezet másolása
  • előre megadott csomagok instalálása
  • sok gépen azonos környezet létrehozása

Mit tehetek ha mégis egy szokásos "programot" szeretnék fordítani?

Ez akkor lehet hasznos, ha olyan gépen szeretnénk futtatni, ahol nincs python.

PyInstaller

Használat:

pyinstaller --onefile myscript.py