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.
    instagram viewer
  • 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.