Ennek az útmutatónak a segítségével megtudhatja, hogyan hozhat létre, terjeszthet és használhat csomagokat Pythonban.
Képzelje el azt a ijesztő feladatot, amikor egyetlen Python-fájlra korlátozódó átfogó alkalmazást kell kifejleszteni. Bár technikailag megvalósítható, ellenkezik a hatékony, karbantartható és újrafelhasználható szoftverek létrehozásának alapelveivel. Ilyen okok miatt a csomagok és modulok elengedhetetlenek a szoftverek építéséhez és fejlesztéséhez.
Mi az a csomag?
A Pythonban egy csomag lehetőséget biztosít a logikailag kapcsolódó modulok és erőforrások együttes rendszerezésére. Ez egy több Python-modult, alcsomagot és egyéb erőforrásokat tartalmazó könyvtár.
A csomagok hierarchikus struktúrát biztosítanak, lehetővé téve, hogy a projekt kódját az absztrakció különböző szintjein rendezze.
Különbség a csomagok és a modulok között
Miközben használhatja mindkét csomagot és modulok a kód rendszerezéséhez, vannak különbségek közöttük:
- Modul: A modul egy Python kódot tartalmazó fájl. Funkciókat, osztályokat, változókat és egyéb objektumokat határoz meg, amelyeket importálhat és használhat a kódban.
- Csomag: A csomag egy vagy több modul gyűjteménye, és alcsomagokat is tartalmazhat.
Hogyan készítsünk csomagot Pythonban
Csomag létrehozásához kövesse az alábbi lépéseket.
1. lépés: Hozzon létre egy projektkönyvtárat
Kezdje egy projektkönyvtár létrehozásával.
study_bud/
2. lépés: Hozzon létre egy csomagkönyvtárat
A projektkönyvtárban hozzon létre egy másik könyvtárat, amely a csomagkönyvtárként fog szolgálni. Adjon neki egy értelmes nevet, amely a csomag célját vagy funkcióját tükrözi. A csomagkönyvtár tartalmazza a csomaghoz kapcsolódó modulokat és alcsomagokat.
study_bud/
math_tool/
3. lépés: Határozza meg a csomag __init__.py fájlját
A csomagkönyvtárban hozzon létre egy __init__.py fájlt. Jelenléte __init__.py fájl teszi a könyvtárat csomaggá a Pythonban.
Ha a csomag használatakor inicializálnia kell egy kódot, adja meg a __init__.py fájl, különben mindig üres.
study_bud/
math_tool/
__init__.py
4. lépés: Adjon hozzá modulokat a csomaghoz
A csomagkönyvtárban adjon hozzá Python-modulokat (.py), amelyek függvényeket, osztályokat vagy változókat határoznak meg.
Ezek a modulok a tényleges kódot tartalmazzák, amely biztosítja a csomag funkcióit. A csomagkönyvtárban több modult is létrehozhat.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
5. lépés: Adjon hozzá alcsomagokat a csomaghoz
Ha a csomagnak hierarchikus szerkezettel kell rendelkeznie, vagy különálló funkciókat tartalmaz, létrehozhat alcsomagokat a csomagkönyvtárban.
Az alcsomag egyszerűen egy másik csomagkönyvtár a fő csomagkönyvtárban. Minden alcsomagnak rendelkeznie kell a sajátjával __init__.py fájlt. Az alcsomagok lehetővé teszik a kód további rendszerezését és szétválasztását.
study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py
Ezekben a lépésekben létrehozta a math_tool csomag, két modul hozzáadva (műveletek.py és Statistics.py), és két alcsomag geometria és számítás mindegyiknek megvan a maga modulja.
Az alábbi lépések követésével könnyedén rendszerezheti a kapcsolódó funkciókat egy csomag és alcsomagok segítségével, megkönnyítve ezzel a kód kezelését és újrafelhasználását.
Hogyan kell dolgozni egy csomaggal Pythonban
Egy csomaggal való munkavégzéshez importálnia kell azt. A import és tól től A kulcsszavak lehetővé teszik egy csomag importálását és használatát a kódban.
import math_tool # entire package
A pontjelölést modulok, alcsomagok vagy adott tulajdonságok csomagból történő importálására is használhatja. A pontjelölés lehetővé teszi, hogy navigáljon a csomag könyvtárszerkezetében. A pontjelölések olvashatóbbá és könnyebben karbantarthatóvá teszik az importálást.
from math_tool.operations import add, multiply # specific functions
A fenti kódban a csomagkönyvtárból navigált (math_tool) hoz tevékenységek modult a pont jelöléssel, és importált két függvényt (add hozzá és szaporodnak).
Abszolút import vs. Relatív import
Val vel abszolútbehozatal, megadhatja a teljes elérési utat a legfelső szintű csomagtól (a gyökércsomagtól) a kívánt modulhoz vagy alcsomaghoz. Ez a leggyakoribb és javasolt módja a modulok és csomagok Pythonban történő importálásának.
from math_tool.geometry.shapes import parallelogram
Kezdve math_tool menj be a geometria alcsomagot, keresse meg a alakzatok.py modult, és importálja a paralelogramma funkció.
Míg relatívbehozatal lehetővé teszi az importálást az aktuális modul helyéhez képest a pont jelöléssel a relatív importok meghatározásához.
Például belül a calculus/integrations.py modulban, a relatív import segítségével importálhat egy függvényt a alakzatok.py modul a geometria alcsomag.
# calculus/integrations.py
from ..geometry.shapes import rhombus
A kettős pont (..") a Pythonnak a következőket mondja:
- Indítsa el az alcsomagok könyvtárából (számítás) ahol a modul (integrations.py) létezik.
- Lépjen be a szülőcsomagba (math_tool) az alcsomag könyvtárát.
- Találd meg geometria alcsomagot a szülőkönyvtárban.
- Menj be a alakzatok.py modul és importálás rombusz ebből.
Tehát a pontjelölés azoknak a könyvtáraknak a számát jelenti, amelyekbe az aktuális modulkönyvtárból navigálni kell.
Alias Import a kényelem érdekében
Az importáláshoz álnevet rendelhet, így könnyebben hivatkozhat rá a kódban. Az álnevek hasznosak, ha hosszú csomag- vagy modulnevekkel foglalkozunk.
Az álnév hozzárendeléséhez használja a mint kulcsszó.
import math_tool.calculus as cal
Hogyan terjesztheti csomagját Pythonban
A Python eszközöket és platformot biztosít a csomag létrehozásához és terjesztéséhez. A csomag terjesztése lehetővé teszi a kód megosztását más fejlesztőkkel, elősegíti az együttműködést, egyszerűsíti a telepítést a felhasználók számára, és hozzájárul a szélesebb Python közösséghez.
1. lépés: Hozzon létre egy fiókot a PyPI-n
Python csomagindex (PyPI) a Python-csomagok alapértelmezett tárháza. Csomagjait közzéteheti PyPI-n, így más fejlesztők könnyen megtalálhatják és telepíthetik azokat.
Ügyeljen arra, hogy emlékezzen a sajátjára felhasználónév és Jelszó mivel szüksége lesz rájuk a hitelesítéshez, amikor feltölti a csomagot a PyPI-be.
Ezek az eszközök megkönnyítik a terjeszthető csomagok egyetlen paranccsal történő konfigurálását, felépítését és leküldését.
pip install build wheel twine
3. lépés: Hozzon létre egy setup.py fájlt
A csomag terjesztéséhez hozzon létre a setup.py fájl a projekt gyökérkönyvtárában. A setup.py fájl metaadatokat tartalmaz a csomagról, például a nevét, verzióját, szerzőjét, leírását, függőségeit stb.
A csomagkezelő eszközök a setup.py fájlt a csomag konfigurálásához és összeállításához.
#setup.py
from setuptools import setup, find_packages
setup(
name='' ,
version='1.0.0',
author='' ,
description='A collection of mathematical utility functions',
packages=find_packages(),
install_requires=[
'numpy',
'scipy',
],
)
4. lépés: Építse meg a csomagot
Ha egyszer megvan a setup.py fájl készen áll, felhasználhatja terjeszthető csomag létrehozására. A terminálban vagy a parancssorban navigáljon a könyvtárba amely tartalmazza a setup.py fájlt, és hajtsa végre a következő parancsot:
python setup.py sdist bdist_wheel
Ez a parancs generálja a ker forrás terjesztési csomagot (.tar.gz) és kerekes terjesztési csomagot (.whl) tartalmazó könyvtár. Azt is látni fogja a épít és info Könyvtár.
5. lépés: Töltse fel a csomagot a PyPI-be
Ha készen van a csomag, feltöltheti a PyPI-be.
Hajtsa végre a következő parancsot:
twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********
Látogassa meg PyPI projektmenedzsment oldalon, hogy megtekinthesse csomagját.
Mostantól más fejlesztők, akik hasznosnak találják a csomagját, telepíthetik és helyileg használhatják.
Python csomag telepítése
A csomagkezelők szeretik a pip-et megkönnyíti a különféle forrásokból származó Python-csomagok telepítését és kezelését, beleértve a Python Package Indexet (PyPI). Csomag telepítéséhez a segítségével csipog, nyissa meg a terminált vagy a parancssort, és használja a következő parancsot:
pip install
Az összes elérhető parancs és opció megtekintéséhez csipog használja a --Segítség választási lehetőség.
Tiszta modulok írása
A csomagok modulokat és alcsomagokat tartalmaznak, amelyek viszont más modulokat tartalmaznak. Jó gyakorlat a kód modularizálása, különösen nagyobb projektek esetén, mivel ez elősegíti a kód jobb szervezését és olvashatóságát. Ezért fontos, hogy a modulokat világosan írjuk, amikor Pythonnal fejlesztünk.