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.
!echo %PATH%
!echo %PATH:;=&echo.%
Egy pythonosabb megoldás:
import os
os.environ['PATH']
Á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
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!
Egy module
semmi más csak egy python script.
Egy csomag (package
) több modulból álló rendszer.
import sys
sys.path
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__":
Tutorial: https://packaging.python.org/tutorials/packaging-projects/
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"
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
python -m build
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
pip install --index-url https://test.pypi.org/simple/ --no-deps example-pkg-name
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:
!conda env list
Adott környezet moduljai:
!conda list -n base
Mindeféle egyebeket is lehet, például:
Ez akkor lehet hasznos, ha olyan gépen szeretnénk futtatni, ahol nincs python.
PyInstaller
Használat:
pyinstaller --onefile myscript.py