Apprenez à créer, distribuer et utiliser des packages en Python à l'aide de ce guide.

Imaginez la tâche ardue de développer une application complète confinée à un seul fichier Python. Bien que techniquement réalisable, cela va à l'encontre des principes fondamentaux de la création de logiciels efficaces, maintenables et réutilisables. Pour ces raisons, les packages et les modules sont essentiels pour créer et développer des logiciels.

Qu'est-ce qu'un forfait?

En Python, un package permet d'organiser ensemble des modules et des ressources logiquement liés. Il s'agit d'un répertoire contenant plusieurs modules Python, sous-packages et autres ressources.

Les packages fournissent une structure hiérarchique, vous permettant d'organiser le code de votre projet à différents niveaux d'abstraction.

Différence entre les packages et les modules

Bien que vous puissiez utiliser à la fois les packages et modules pour organiser le code, il y a des différences entre eux :

  • Module: Un module est un fichier contenant du code Python. Il définit des fonctions, des classes, des variables et d'autres objets que vous pouvez importer et utiliser dans votre code.
  • Emballer: Un package est une collection d'un ou plusieurs modules et peut également inclure des sous-packages.

Comment créer un package en Python

Pour créer un package, suivez ces étapes décrites.

Étape 1: Créer un répertoire de projet

Commencez par créer un répertoire de projet.

study_bud/

Étape 2: créer un répertoire de packages

Dans votre répertoire de projet, créez un autre répertoire qui servira de répertoire de package. Donnez-lui un nom significatif qui représente l'objectif ou la fonctionnalité du package. Le répertoire du package contiendra les modules et sous-packages liés à votre package.

study_bud/
math_tool/

Étape 3: Définir le fichier de package __init__.py

Dans le répertoire du package, créez un __init__.py déposer. La présence de __init__.py file est ce qui fait du répertoire un package en Python.

Si vous devez initialiser un code chaque fois que vous utilisez le package, incluez-le dans le __init__.py fichier sinon il est toujours vide.

study_bud/
math_tool/
__init__.py

Étape 4: Ajouter des modules au package

Dans le répertoire du package, ajoutez des modules Python (.py) qui définissent des fonctions, des classes ou des variables.

Ces modules contiennent le code réel qui fournit les fonctionnalités de votre package. Vous pouvez créer plusieurs modules dans le répertoire du package.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py

Étape 5: Ajouter des sous-packages au package

Si votre package doit avoir une structure hiérarchique ou contient des fonctionnalités distinctes, vous pouvez créer des sous-packages dans le répertoire du package.

Un sous-paquet est simplement un autre répertoire de paquetage dans le répertoire principal du paquetage. Chaque sous-package doit avoir son __init__.py déposer. Les sous-packages permettent une organisation et une séparation plus poussées du code.

study_bud/
math_tool/
__init__.py
operations.py
statistics.py
geometry/
__init__.py
shapes.py
calculus/
__init__.py
integrations.py

Au cours de ces étapes, vous avez créé un math_tool paquet, ajouté deux modules (opérations.py et statistiques.py), et deux sous-packages géométrie et calcul ayant chacun leurs modules.

En suivant ces étapes, vous pouvez facilement organiser les fonctionnalités associées à l'aide d'un package et de sous-packages, ce qui facilite la gestion et la réutilisation du code.

Comment travailler avec un package en Python

Pour travailler avec un package, vous devez l'importer. Le importer et depuis les mots-clés vous permettent d'importer et d'utiliser un package dans votre code.

import math_tool # entire package

Vous pouvez également utiliser la notation par points pour importer des modules, des sous-packages ou des propriétés spécifiques à partir d'un package. La notation par points vous permet de naviguer dans la structure du répertoire du package. La notation par points rend vos importations plus lisibles et plus faciles à gérer.

from math_tool.operations import add, multiply # specific functions

Dans le code ci-dessus, vous avez navigué à partir du répertoire du package (math_tool) au opérations module en utilisant la notation par points et importé deux fonctions (ajouter et multiplier).

Importations absolues vs. Importations relatives

Avec absoluimportations, vous spécifiez le chemin d'accès complet du package de niveau supérieur (le package racine) au module ou sous-package souhaité. C'est la méthode la plus courante et la plus recommandée pour importer des modules et des packages en Python.

from math_tool.geometry.shapes import parallelogram

A partir de math_tool aller dans le géométrie sous-package, recherchez le formes.py module, et importez le parallélogramme fonction.

Alors que relatifimportations vous permettent d'effectuer des importations relatives à l'emplacement du module actuel en utilisant la notation par points pour spécifier les importations relatives.

Par exemple, à l'intérieur du calcul/intégrations.py module, vous pouvez utiliser l'importation relative pour importer une fonction à partir du formes.py modules dans le géométrie sous-paquet.

# calculus/integrations.py
from ..geometry.shapes import rhombus

Le double point (""..") indique à Python de :

  • Commencez à partir du répertoire du sous-paquet (calcul) où le module (intégrations.py) existe.
  • Allez dans le package parent (math_tool) répertoire du sous-package.
  • Trouvez le géométrie sous-package dans le répertoire parent.
  • Allez dans le formes.py module et importation rhombe à partir de cela.

Ainsi, la notation par points représente le nombre de répertoires dans lesquels naviguer à partir du répertoire de module actuel.

Importations d'alias pour plus de commodité

Vous pouvez attribuer un alias à une importation pour faciliter la référence dans votre code. Les alias sont pratiques lorsqu'il s'agit de longs noms de packages ou de modules.

Pour attribuer un alias, utilisez le comme mot-clé.

import math_tool.calculus as cal

Comment distribuer votre package en Python

Python vous fournit des outils et une plate-forme pour créer et distribuer votre package. La distribution de votre package vous permet de partager votre code avec d'autres développeurs, de promouvoir la collaboration, de simplifier l'installation pour les utilisateurs et de contribuer à la communauté Python au sens large.

Étape 1: Créer un compte sur PyPI

Index des packages Python (PyPI) est le référentiel par défaut pour les packages Python. Vous pouvez publier vos packages sur PyPI afin que d'autres développeurs puissent facilement les trouver et les installer.

Assurez-vous de vous souvenir de votre nom d'utilisateur et mot de passe car vous en aurez besoin pour l'authentification lors du téléchargement de votre package sur PyPI.

Ces outils vous permettent de configurer, de créer et de déployer facilement un package distribuable en une seule commande.

pip install build wheel twine

Étape 3: Créer un fichier setup.py

Pour distribuer votre package, créez un fichier setup.py dans le répertoire racine de votre projet. Le setup.py Le fichier contient des métadonnées sur votre package, telles que son nom, sa version, son auteur, sa description, ses dépendances, etc.

Les outils de gestion de paquets utiliseront le setup.py fichier pour configurer et construire votre package.

#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',
],
)

Étape 4: Créer le package

Une fois que vous avez le setup.py prêt, vous pouvez l'utiliser pour créer un package distribuable. Dans votre terminal ou invite de commande, naviguer dans le répertoire contenant le setup.py fichier et exécutez la commande suivante :

python setup.py sdist bdist_wheel

Cette commande génère un distance répertoire contenant un package de distribution source (.tar.gz) et un package de distribution wheel (.whl). Vous verrez également un construire et Info annuaire.

Étape 5: Télécharger le package sur PyPI

Une fois votre package prêt, vous pouvez le télécharger sur PyPI.

Exécutez la commande suivante :

twine upload dist/*
> Uploading distributions to https://upload.pypi.org/legacy/
> Enter your username: **********
> Enter your password: **********

Visitez votre APIPy page de gestion de projet pour voir votre package.

Désormais, les autres développeurs qui trouvent votre package utile peuvent l'installer et l'utiliser localement.

Comment installer un package Python

Les gestionnaires de paquets comme pip facilitent l'installation et la gestion des packages Python à partir de diverses sources, y compris le Python Package Index (PyPI). Pour installer un package à l'aide de pépin, ouvrez votre terminal ou invite de commande et utilisez la commande suivante :

pip install 

Pour voir toutes les commandes et options disponibles pour pépin Utilisez le --aider option.

Écrire des modules propres

Les packages contiennent des modules et des sous-packages qui, à leur tour, contiennent d'autres modules. C'est une bonne pratique de modulariser votre code, en particulier lorsque vous travaillez sur des projets plus importants, car cela favorise une meilleure organisation et lisibilité du code. Il est donc important d'écrire des modules avec clarté lors du développement avec Python.