Packaging Python

PythonBeginner
Pratiquer maintenant

Introduction

Ce laboratoire présente le script setup.py, un composant fondamental pour l'empaquetage des projets Python utilisant la bibliothèque traditionnelle Distutils. Vous apprendrez son objectif, sa structure, et comment l'utiliser pour rendre vos modules Python installables. À la fin de ce laboratoire, vous aurez créé un fichier setup.py de base et l'aurez utilisé pour installer un paquet Python simple.

Introduction

Dans cette étape, vous allez comprendre le rôle du script setup.py comme centre de toute activité de construction, de distribution et d'installation des modules avec Distutils.

Le script de configuration (setup script) est le cœur de la construction, de la distribution et de l'installation des modules utilisant Distutils. Son objectif principal est de décrire votre distribution de modules à Distutils, afin que les différentes commandes qui opèrent sur vos modules fassent ce qu'il faut.

Le fichier setup.py est au centre d'un projet Python. Il décrit tous les métadonnées concernant votre projet. Bien qu'il existe de nombreux champs que vous pouvez ajouter pour fournir des métadonnées riches, seuls trois sont obligatoires :

  • name : Le nom de votre paquet. Il doit être unique si vous souhaitez publier votre paquet sur le Python Package Index (PyPI).
  • version : La version actuelle de votre paquet. Cela aide les utilisateurs à distinguer les différentes versions.
  • packages : Une liste de tous les paquets Python à inclure dans votre distribution.

Une fois que vous avez un fichier setup.py, vous pouvez facilement installer le paquet Python dans votre environnement. La méthode recommandée est d'utiliser pip pour installer le paquet depuis le répertoire courant. Exécutez la commande suivante dans votre terminal depuis le même répertoire que le fichier setup.py :

pip install .

Cette commande gérera le processus de construction et d'installation du module afin qu'il puisse être importé et utilisé dans d'autres scripts Python. À l'étape suivante, nous allons créer un fichier setup.py et exécuter cette commande.

Exemple

Dans cette étape, nous allons examiner un exemple de base de script setup.py et en créer un pour notre projet. Cet exemple inclura les champs requis ainsi que des informations facultatives telles que la licence et une description longue lue à partir d'un fichier README.txt.

Tout d'abord, naviguez dans le répertoire du projet qui a été préparé pour vous. Utilisez l'explorateur de fichiers sur le côté gauche de l'IDE pour voir le répertoire pythonCheatsheet. À l'intérieur, vous trouverez un sous-répertoire pipenv et un fichier README.txt.

Maintenant, créez un nouveau fichier nommé setup.py à l'intérieur du répertoire ~/project/pythonCheatsheet. Cliquez sur le dossier pythonCheatsheet dans l'explorateur de fichiers, puis cliquez sur l'icône "Nouveau Fichier" et nommez-le setup.py.

Copiez et collez le code suivant dans votre fichier setup.py nouvellement créé :

## setup.py: define package metadata for distribution
from distutils.core import setup

setup(
   name='pythonCheatsheet',  ## Package name (must be unique on PyPI)
   version='0.1',  ## Version number
   packages=['pipenv',],  ## List of packages to include
   license='MIT',  ## License type
   long_description=open('README.txt').read(),  ## Read description from file
)

Décortiquons ce script :

  • from distutils.core import setup: Cette ligne importe la fonction setup, qui est le point d'entrée principal du script.
  • name='pythonCheatsheet': Définit le nom de notre paquet.
  • version='0.1': Définit la version initiale.
  • packages=['pipenv',]: Indique à Distutils que le paquet à inclure se trouve dans le répertoire pipenv.
  • license='MIT': Spécifie la licence sous laquelle le paquet est distribué.
  • long_description=open('README.txt').read(): Lit le contenu de README.txt pour fournir une description détaillée du paquet.

Maintenant que le fichier setup.py est prêt, ouvrez un terminal en cliquant sur l'icône + dans le panneau du terminal en bas de l'IDE. Assurez-vous que votre répertoire courant est ~/project/pythonCheatsheet. Vous pouvez y naviguer en exécutant cd ~/project/pythonCheatsheet.

Exécutez la commande d'installation :

pip install .

Vous verrez une sortie dans le terminal pendant que pip construit et installe le paquet. La sortie ressemblera à ceci, se terminant par une confirmation que le paquet est installé :

Processing /home/labex/project/pythonCheatsheet
Building wheels for collected packages: pythonCheatsheet
  Building wheel for pythonCheatsheet (setup.py) ... done
  Created wheel for pythonCheatsheet: pythonCheatsheet-0.1-py3-none-any.whl
  Stored in directory: /tmp/pip-wheel-xxxxx
Successfully built pythonCheatsheet
Installing collected packages: pythonCheatsheet
Successfully installed pythonCheatsheet-0.1

Pour confirmer l'installation, vous pouvez utiliser pip pour lister les paquets installés et filtrer pour votre nouveau paquet :

pip list | grep pythonCheatsheet

Vous devriez voir votre paquet listé avec sa version :

pythonCheatsheet  0.1

Félicitations ! Vous avez réussi à créer un fichier setup.py et à installer un paquet Python.

Résumé

Dans ce laboratoire, vous avez découvert le rôle fondamental du script setup.py dans la distribution des projets Python à l'aide de Distutils. Vous avez couvert les champs de métadonnées essentiels requis pour un paquet : name, version et packages. Enfin, vous avez créé un fichier setup.py pratique, inclus des métadonnées supplémentaires telles que license et long_description, et installé avec succès votre paquet dans l'environnement local en utilisant la commande pip install .. Vous possédez maintenant les connaissances de base pour rendre vos propres projets Python distribuables.