Modules et packages

PythonPythonIntermediate
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons explorer la manière d'utiliser les modules et les packages Python pour organiser et réutiliser le code. Nous commencerons par des exemples simples et irons progressivement vers des exemples plus complexes. À la fin de ce laboratoire, vous aurez une compréhension solide de la manière d'utiliser les modules et les packages dans vos propres projets.

Objectifs

  • Modules Python
  • Packages Python
  • PyPI
Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau intermédiaire avec un taux de réussite de 78.57%. Il a reçu un taux d'avis positifs de 100% de la part des apprenants.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/NetworkingGroup(["Networking"]) python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/creating_modules("Creating Modules") python/ModulesandPackagesGroup -.-> python/using_packages("Using Packages") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") python/NetworkingGroup -.-> python/http_requests("HTTP Requests") subgraph Lab Skills python/importing_modules -.-> lab-89{{"Modules et packages"}} python/creating_modules -.-> lab-89{{"Modules et packages"}} python/using_packages -.-> lab-89{{"Modules et packages"}} python/standard_libraries -.-> lab-89{{"Modules et packages"}} python/catching_exceptions -.-> lab-89{{"Modules et packages"}} python/http_requests -.-> lab-89{{"Modules et packages"}} end

Qu'est-ce qu'un module et un package Python?

Un module en Python est un fichier qui contient des définitions de fonctions, de classes et de variables. Nous pouvons utiliser les modules pour diviser de grands programmes en parties plus petites et plus faciles à gérer. Les modules facilitent également la réutilisation du code dans plusieurs projets.

Un package est une collection de modules. Les packages nous permettent de regrouper des modules liés et de les accéder à l'aide d'une notation ponctuée simple.

Il existe plusieurs catégories de modules et de packages Python:

  1. Modules intégrés: Ce sont des modules inclus avec l'interpréteur Python et accessibles à tous les programmes Python. Parmi les exemples de modules intégrés, on trouve math, os, sys et random.
  2. Modules de la bibliothèque standard: Ce sont des modules qui font partie de la bibliothèque standard Python, mais qui ne sont pas intégrés à l'interpréteur. Ils peuvent être importés et utilisés de la même manière que les modules intégrés. Parmi les exemples de modules de la bibliothèque standard, on trouve json, urllib, re et csv.
  3. Modules tiers: Ce sont des modules développés et maintenus par des particuliers ou des organisations en dehors de l'équipe de développement Python centrale. Ils peuvent être importés et utilisés de la même manière que les modules intégrés et de la bibliothèque standard, mais ils doivent être installés séparément. Il existe de nombreux modules tiers disponibles, couvrant une large gamme de sujets et de buts. Parmi les exemples, on trouve numpy, pandas, requests et beautifulsoup4.
  4. Modules locaux: Ce sont des modules situés dans le même répertoire que le programme Python qui les utilise. Nous pouvons importer des modules locaux à l'aide de l'instruction import et du nom du module, sans spécifier le chemin complet.
  5. Importations relatives: Ce sont des importations relatives au package ou au module actuel. Elles nous permettent d'importer des modules et des packages situés dans un répertoire différent de celui du module actuel. Nous pouvons utiliser des importations relatives pour importer des modules et des packages qui font partie du même projet, mais qui sont organisés dans une structure de répertoire différente.

En résumé, les modules et les packages Python peuvent être classifiés selon leur origine et la manière dont ils sont accessibles. Les modules intégrés et de la bibliothèque standard sont inclus avec l'interpréteur Python et accessibles à tous les programmes Python, tandis que les modules tiers doivent être installés séparément. Les modules locaux et les importations relatives nous permettent d'importer des modules et des packages situés dans le même projet, mais dans une structure de répertoire différente.

Voici un exemple de l'utilisation d'un des modules intégrés Python, le module math.

Ouvrez une nouvelle session d'interpréteur Python et tapez le code suivant:

python3
import math

## Calcule la racine carrée de 16
x = math.sqrt(16)
print(x)  ## Sortie: 4.0

## Calcule le sinus de pi
y = math.sin(math.pi)
print(y)  ## Sortie: 1.2246467991473532e-16

## Calcule le factoriel de 5
z = math.factorial(5)
print(z)  ## Sortie: 120

Le module math est un module intégrée Python qui fournit des fonctions mathématiques et des constantes. Parmi les fonctions disponibles dans le module math, on trouve sqrt(), sin(), cos(), tan(), log(), exp() et factorial(). Le module math fournit également des constantes telles que pi et e.

Nous pouvons utiliser l'instruction import pour importer le module math puis appeler ses fonctions et accéder à ses constantes dans notre code.

Dans l'exemple ci-dessus, nous utilisons la fonction sqrt() pour calculer la racine carrée de 16, la fonction sin() pour calculer le sinus de pi et la fonction factorial() pour calculer le factoriel de 5. Nous utilisons également la constante pi pour représenter la valeur de pi dans l'appel à la fonction sin().

Il existe de nombreux autres modules intégrés Python qui fournissent des fonctions et des constantes utiles. Parmi les exemples, on trouve le module os pour interagir avec le système d'exploitation, le module datetime pour travailler avec les dates et les heures, et le module random pour générer des nombres aléatoires. Vous pouvez trouver une liste complète des modules intégrés Python dans la documentation.

Créer un module Python

Dans cette étape, nous allons créer un module Python. Un module est un fichier qui contient du code Python.

Voici un exemple simple de création et d'utilisation d'un module Python :

Tout d'abord, créez un nouveau fichier appelé my_module.py dans le chemin /home/labex/project/. Ce sera notre fichier de module.

Dans le fichier my_module.py, définissez une fonction appelée say_hello() qui affiche un message de salutation dans la console :

def say_hello():
    print("Hello from my_module!")

Enregistrez le fichier.

Maintenant, ouvrez un nouveau fichier Python (ou entrez dans l'interpréteur Python) et importez le module my_module à l'aide de l'instruction import :

import my_module

Pour utiliser la fonction say_hello() du module my_module, vous pouvez l'appeler comme ceci :

my_module.say_hello()  ## Sortie : "Hello from my_module!"

C'est tout! Nous avons créé et utilisé avec succès un module Python.

Exception ImportError

Notez que lorsqu'on importe un module, Python cherche le fichier de module dans le répertoire courant, ainsi que dans tous les répertoires listés dans la variable d'environnement PYTHONPATH. Si le fichier de module n'est pas trouvé, on obtient une exception ImportError.

Essayons d'importer un module qui n'existe pas.

Ouvrez une nouvelle fenêtre de terminal et changez le répertoire courant vers /home/labex/ :

cd /home/labex/

Maintenant, ouvrez un nouvel interpréteur Python et essayez d'importer le module my_module :

python3
import my_module

Vous devriez obtenir une exception ImportError :

ModuleNotFoundError: No module named'my_module'

Vous pouvez ajouter un répertoire à la variable d'environnement PYTHONPATH en ajoutant la ligne suivante à votre fichier Python :

import sys
## my_module.py est situé dans le répertoire /home/labex/project/
sys.path.append("/home/labex/project")

import my_module
my_module.say_hello()

Notez que la fonction sys.path.append() doit être appelée avant l'instruction import.

Créer un package Python

Dans cette étape, nous allons créer un package Python. Un package est un répertoire qui contient des modules Python.

Améliorons l'exemple de l'étape précédente.

Tout d'abord, créez un nouveau répertoire appelé my_package dans le chemin /home/labex/project/. Ce sera notre répertoire de package.

Dans le répertoire /home/labex/project/my_package, créez un nouveau fichier appelé __init__.py. Ceci est un fichier spécial qui indique à Python que le répertoire my_package doit être traité comme un package.

Dans le répertoire my_package, créez un nouveau fichier appelé my_module.py. Ce sera notre fichier de module.

Dans le fichier my_module.py, définissez une fonction appelée say_hello() qui affiche un message de salutation dans la console :

def say_hello():
    print("Hello from my_module!")

Maintenant, ouvrez un nouveau fichier Python (ou entrez dans l'interpréteur Python) et importez le package my_package :

import my_package

Pour utiliser la fonction say_hello() du module my_module, vous pouvez l'appeler comme ceci :

my_package.my_module.say_hello()  ## Sortie : "Hello from my_module!"

C'est tout! Nous avons créé et utilisé avec succès un package Python avec un module.

Voici la structure de répertoire de notre projet :

my_package/
├── __init__.py
└── my_module.py

Cet exemple montre comment nous pouvons créer un package et accéder à ses modules à l'aide de la notation ponctuée. Le package my_package contient le module my_module, et nous pouvons accéder à la fonction say_hello() du module my_module en appelant my_package.my_module.say_hello().

Dans ce contexte, my_package est un package Python et my_module est un module Python. Les packages nous permettent d'organiser notre code dans une structure hiérarchique, ce qui peut être utile pour de plus grands projets avec de nombreux modules.

En résumé, la principale différence entre un package et un module est que le package est une collection de modules qui peut être accédée à l'aide d'une notation ponctuée, tandis qu'un module est un fichier autonome qui contient des définitions de fonctions, de classes et de variables.

Packages tiers

Les packages tiers Python sont des packages développés et maintenus par des particuliers ou des organisations en dehors de l'équipe de développement Python centrale. Ils peuvent être importés et utilisés de la même manière que les modules intégrés et de la bibliothèque standard, mais ils doivent être installés séparément.

Il existe de nombreux packages tiers disponibles pour Python, couvrant une large gamme de sujets et de buts. Parmi les exemples, on trouve numpy pour le calcul scientifique, pandas pour l'analyse de données, requests pour travailler avec les requêtes HTTP et beautifulsoup4 pour le scraping web.

La raison principale pour laquelle Python est si populaire est l'abondance de packages tiers.

Pour installer un package tiers, nous pouvons utiliser le gestionnaire de packages pip, qui est inclus par défaut avec Python. Par exemple, pour installer le package requests, nous pouvons exécuter la commande suivante :

pip install requests

Nous pouvons également utiliser d'autres gestionnaires de packages tels que conda pour installer des packages tiers. Consultez Anaconda pour plus d'informations.

Une fois le package installé, nous pouvons l'importer et l'utiliser dans notre code Python. Par exemple, voici comment nous pouvons utiliser le package requests pour envoyer une requête HTTP et afficher la réponse :

python3
import requests

response = requests.get("https://www.example.com")
print(response.text)

Ce code envoie une requête HTTP GET à l'URL https://www.example.com à l'aide du package requests, puis affiche le texte de la réponse dans la console.

La fonction requests.get() envoie une requête HTTP GET à l'URL spécifiée et renvoie un objet HTTPResponse qui contient les données de réponse. L'objet de réponse a diverses attributs et méthodes qui nous permettent d'accéder et de manipuler les données de réponse.

Dans ce cas, l'attribut response.text contient le corps de la réponse sous forme de chaîne de caractères. En appelant print(response.text), nous affichons le corps de la réponse dans la console.

Les packages tiers Python sont une partie importante de l'écosystème Python, car ils offrent des solutions prêtes à l'emploi pour les tâches courantes et étendent la fonctionnalité de Python. Ils peuvent nous épargner du temps et des efforts en fournissant des solutions prédéfinies que nous pouvons utiliser dans nos projets, plutôt que d'avoir à tout construire à partir de zéro.

En plus du temps et des efforts épargnés en utilisant des packages tiers, ils peuvent également nous aider à écrire du code plus fiable et maintenable. En utilisant des packages bien testés et largement utilisés, nous pouvons tirer profit du travail d'autrui et nous concentrer sur la résolution de notre problème spécifique.

Dans l'ensemble, les packages tiers Python sont une ressource importante pour étendre la fonctionnalité de Python et pour résoudre les tâches courantes. Ils peuvent nous épargner du temps et des efforts, nous aider à nous intégrer avec d'autres outils et bibliothèques, et contribuer à la fiabilité et à la maintenabilité de notre code.

Récapitulatif

Dans ce laboratoire, nous avons appris à utiliser les modules et les packages Python pour organiser et réutiliser le code. Nous avons vu comment importer et utiliser des modules et des packages dans nos programmes, et nous avons également appris à créer nos propres packages. En utilisant des modules et des packages, nous pouvons écrire un code plus propre et plus facile à maintenir.

OSZAR »