Comment construire un package Python ?

Dans cet article, nous allons apprendre à développer le package en Python. Les packages ne sont rien d’autre qu’un ensemble de programmes conçus pour effectuer un certain ensemble de tâches. Les forfaits sont de deux types, à savoir

  • Forfaits intégrés comme collection, datetime, sqlite, etc.
  • Des packages externes tels que flacon, django, tensorflow, etc.

Création d’un paquet

Tout d’abord, nous devons réfléchir à un moyen de structurer notre code, afin que d’autres puissent accéder à nos fonctionnalités de code. En Python, pour créer un package, nous devons ajouter un __init__.py au répertoire. Ici, nous allons faire un package appelé test_package.

  • Écrivons le __init__.py

Python3

from collections import Counter

 

def count_in_list(l, word):

  c = Counter(l)

  return c[word]

  • Maintenant, créez un répertoire appelé test_packageet gardez-y le __init__.py dossier. C’est tout, notre colis est prêt. Tous nos forfaits comptent le nombre d’occurrences d’un mot dans une liste. Maintenant, pour utiliser notre package, créez un run.py fichier en dehors de test_package annuaire. À l’intérieur de run.py importez simplement le package nouvellement créé et utilisez le count_in_list fonction. Nous pouvons écrire le code comme indiqué ci-dessous.

Python3

from test_package import count_in_list

 

l = ["gfg", "dsa", "gfg"]

count = count_in_list(l, "gfg")

print(count)

  • C’est tout. Nous venons de créer notre premier package. Notre structure de répertoires devrait ressembler à ceci
package-folder
├── run.py
└── test_package
    └── __init__.py

1 directory, 2 files

Pour le tester, tapez simplement python3 run.py. Et ovotre sortie devrait être la suivante :

gfg9

De cette manière, nous pouvons créer de nombreux programmes complexes et les utiliser dans d’autres codes.

Télécharger notre package

Voyons maintenant comment nous pouvons préparer notre package à déployer sur APIPy. Nous avons besoin de fichiers supplémentaires dans notre dossier de package, comme LISEZMOI.MD, LICENCEet setup.py. Notre code doit être structuré comme ci-dessous.

package-folder
├── LICENSE
├── README.md
├── setup.py
└── test_package
    └── __init__.py

1 directory, 4 files

Assurez-vous de supprimer le fichier précédemment créé run.py, il était destiné uniquement aux tests manuels. Pour la LICENCE, nous vous recommandons d’utiliser la LICENCE MIT car elle offre le plus de flexibilité. Nous pouvons lire sur les différents types de licences en ligne.

Ensuite, créez le fichier README.md. Il contiendrait essentiellement une description complète du paquet. Si nous sommes nouveaux dans l’écriture de style démarquage, nous vous recommandons de lire ceci article. Une fois que nous avons votre fichier README.md prêt, nous devons écrire le setup.py. C’est la partie la plus importante.

Python3

import setuptools

 

with open("README.md", "r") as fh:

    description = fh.read()

 

setuptools.setup(

    name="test-package",

    version="0.0.1",

    author="GeeksforGeeks",

    author_email="contact@gfg.com",

    packages=["test_package"],

    description="A sample test package",

    long_description=description,

    long_description_content_type="text/markdown",

    license='MIT',

    python_requires='>=3.8',

    install_requires=[]

)

Dans le code ci-dessus, vous devez modifier le

  • auteur avec ton nom
  • auteur_email avec votre e-mail
  • URL avec votre URL GitHub du package

Notre colis est maintenant prêt.

Enregistrez notre package sur PyPI

Maintenant que nous avons développé notre package python, nous devons l’enregistrer sur PyPI.

1. Télécharger sur GitHub

Créez un nouveau référentiel GitHub et placez-y tout notre code. Si vous ne savez pas comment pousser le code vers un référentiel GitHub, vous pouvez vous diriger et lire ceci article. Aussi, n’oubliez pas de mettre à jour notre URL dans setup.py avec l’URL du dépôt GitHub nouvellement créée. Notre référentiel doit être accessible au public.

2. Créez un compte dans PyPI

Nous allons publier le package dans PyPI, nous avons besoin d’un compte. Pour ce faire, il vous suffit de visiter PyPI et de créer votre compte.

3. Génération de distributions

Les archives de distribution sont nécessaires pour l’héberger en tant que package. Pour générer ces packages, nous devons installer deux packages supplémentaires.

pip3 install setuptools wheel

Maintenant que nous les avons installés, exécutez la commande ci-dessous pour générer des archives :

python3 setup.py sdist bdist_wheel

Il va générer des dossiers construire, distance, test_package.egg-info. Maintenant, votre structure de répertoires devrait ressembler à ceci.

package-folder
├── build
│   ├── bdist.linux-x86_64
│   └── lib
│       └── test_package
│           └── __init__.py
├── dist
│   ├── test_package-0.0.1-py3-none-any.whl
│   └── test-package-0.0.1.tar.gz
├── LICENSE
├── README.md
├── setup.py
├── test_package
│   └── __init__.py
└── test_package.egg-info
    ├── dependency_links.txt
    ├── PKG-INFO
    ├── SOURCES.txt
    └── top_level.txt

7 directories, 11 files

4. Déployer

Pour télécharger sur PyPI, nous avons besoin du paquet twine installé.

pip3 install twine

Maintenant, téléchargez le package avec la version appropriée définie dans le setup.py dossier. Pour ce faire, exécutez la commande ci-dessous

twine upload --repository pypi dist/*

Il s’agissait de développer et de déployer des packages en python.

Utilisation de notre forfait

Une fois le package développé, nous devrions pouvoir l’utiliser, n’est-ce pas ? Après tout, il a été développé pour réutiliser la même logique dans différentes bases de code. Créez un tout nouveau répertoire et créez un environnement virtuel à l’intérieur. Pour cela, tapez simplement

python3 -m venv env
source env/bin/activate

Maintenant, installez votre package nouvellement déployé dans l’environnement virtuel. Vous devez utiliser pépin pour pouvoir l’installer.

pip install test-package

Voyons maintenant comment nous pouvons utiliser ce package dans notre code. L’idée est simple. C’est après tout un paquet, n’est-ce pas ? Donc, tout ce que nous avons à faire est de l’importer sous forme de package.

from test_package import count_in_list

Maintenant, nous avons notre fonction. Essayons de l’utiliser.

print(count_in_list(["gfg", "dsa", "gfg"], "gfg")) # output: 2
print(count_in_list(["gfg", "dsa", "gfg"], "maths")) # output: 0

C’est tout. Si on met tout ça ensemble,

Python3

from test_package import count_in_list

 

print(count_in_list(["gfg", "dsa", "gfg"], "gfg"))

print(count_in_list(["gfg", "dsa", "gfg"], "maths"))

Production:

gfg20

Il s’agissait donc de développer un package et de le déployer sur PyPI.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Aller en haut