Recherche de site Web

Comment importer des modules dans Python 3


Introduction

Le langage de programmation Python est accompagné d'une variété de fonctions intégrées. Parmi celles-ci, on trouve plusieurs fonctions courantes, y compris :

  • print() qui imprime des expressions
  • abs() qui renvoie la valeur absolue d'un nombre
  • int() qui convertit un autre type de données en entier
  • len() qui renvoie la longueur d'une séquence ou d'une collection

Cependant, ces fonctions intégrées sont limitées, et nous pouvons utiliser des modules pour créer des programmes plus sophistiqués.

Les modules sont des fichiers Python .py qui se composent de code Python. Tout fichier Python peut être référencé comme un module. Un fichier Python appelé hello.py a le nom de module hello qui peut être importé dans d'autres fichiers Python ou utilisé dans l'interpréteur de commandes Python. Vous pouvez apprendre à créer vos propres modules en lisant Comment écrire des modules en Python 3.

Les modules peuvent définir des fonctions, des classes et des variables que vous pouvez référencer dans d'autres fichiers Python .py ou via l'interpréteur de ligne de commande Python.

En Python, les modules sont accessibles en utilisant l'instruction import. Lorsque vous faites cela, vous exécutez le code du module, en conservant les portées des définitions afin que vos fichiers actuels puissent en tirer parti.

Lorsque Python importe un module appelé hello par exemple, l'interpréteur recherchera d'abord un module intégré appelé hello. Si aucun module intégré n'est trouvé, l'interpréteur Python recherchera alors un fichier nommé hello.py dans une liste de répertoires qu'il reçoit de la variable sys.path.

Ce tutoriel vous guidera à travers la vérification et l'installation des modules, l'importation des modules et l'aliasing des modules.

Conditions préalables

Vous devez avoir Python 3 installé et un environnement de programmation configuré sur votre ordinateur ou serveur. Si vous n'avez pas d'environnement de programmation configuré, vous pouvez consulter les guides d'installation et de configuration pour un environnement de programmation local ou pour un environnement de programmation sur votre serveur, approprié à votre système d'exploitation (Ubuntu, CentOS, Debian, etc.).

Vérification et installation des modules

Il existe un certain nombre de modules intégrés dans la bibliothèque standard Python, qui contient de nombreux modules offrant un accès aux fonctionnalités système ou fournissant des solutions standardisées. La bibliothèque standard Python fait partie de chaque installation de Python.

Info : Pour suivre l'exemple de code dans ce tutoriel, ouvrez une interface Python interactive sur votre système local en exécutant la commande python3. Vous pouvez ensuite copier, coller ou modifier les exemples en les ajoutant après l'invite >>>.

Pour vérifier que ces modules Python sont prêts à l'emploi, entrez dans votre environnement de programmation Python 3 local ou dans un environnement de programmation basé sur un serveur et démarrez l'interpréteur Python dans votre ligne de commande comme ceci :

  1. python

Depuis l'interpréteur, vous pouvez exécuter l'instruction import pour vous assurer que le module donné est prêt à être appelé, comme dans :

  1. import math

Puisque math est un module intégré, votre interpréteur devrait effectuer la tâche sans retour d'information, revenant à l'invite. Cela signifie que vous n'avez rien à faire pour commencer à utiliser le module math.

Exécutons l'instruction import avec un module que vous n'avez peut-être pas installé, comme la bibliothèque de traçage 2D matplotlib :

  1. import matplotlib

Si matplotlib n'est pas installé, vous recevrez une erreur comme celle-ci :

ImportError: No module named 'matplotlib'

Vous pouvez désactiver l'interpréteur Python avec CTRL + D puis installer matplotlib avec pip.

Ensuite, nous pouvons utiliser pip pour installer le module matplotlib :

  1. pip install matplotlib

Une fois installé, vous pouvez importer matplotlib dans l'interpréteur Python en utilisant import matplotlib, et cela se fera sans erreur.

Importer des modules

Pour utiliser les fonctions d'un module, vous devez importer le module avec une instruction import.

Une déclaration import est composée du mot clé import ainsi que du nom du module.

Dans un fichier Python, cela sera déclaré en haut du code, sous les lignes shebang ou les commentaires généraux.

Ainsi, dans le fichier programme Python my_rand_int.py, nous importerions le module random pour générer des nombres aléatoires de cette manière :

import random

Lorsque nous importons un module, nous le rendons disponible dans notre programme actuel en tant qu'espace de noms séparé. Cela signifie que nous devrons faire référence à la fonction en notation pointée, comme dans [module].[fonction].

En pratique, avec l'exemple du module random, cela peut ressembler à une fonction telle que :

  • random.randint() qui appelle la fonction pour renvoyer un entier aléatoire, ou
  • random.randrange() qui appelle la fonction pour renvoyer un élément aléatoire d'une plage spécifiée.

Créons une boucle for pour montrer comment nous allons appeler une fonction du module random dans notre programme my_rand_int.py :

import random


for i in range(10):
    print(random.randint(1, 25))

Ce petit programme importe d'abord le module random à la première ligne, puis entre dans une boucle for qui travaillera avec 10 éléments. À l'intérieur de la boucle, le programme imprimera un entier aléatoire dans la plage de 1 à 25 (inclus). Les entiers 1 et 25 sont passés à random.randint() en tant que paramètres.

Lorsque nous exécutons le programme avec python my_rand_int.py, nous recevrons 10 entiers aléatoires en sortie. Comme ils sont aléatoires, vous obtiendrez probablement des entiers différents chaque fois que vous exécuterez le programme, mais ils généreront quelque chose comme ceci :

6
9
1
14
3
22
10
1
15
9

Les entiers ne doivent jamais descendre en dessous de 1 ou dépasser 25.

Si vous souhaitez utiliser des fonctions provenant de plusieurs modules, vous pouvez le faire en ajoutant plusieurs déclarations import :

import random
import math

Vous pouvez voir des programmes qui importent plusieurs modules avec des virgules les séparant — comme dans import random, math — mais cela n'est pas conforme au PEP 8 Style Guide.

Pour utiliser notre module supplémentaire, nous pouvons ajouter la constante pi de math à notre programme, et diminuer le nombre d'entiers aléatoires affichés :

import random
import math


for i in range(5):
    print(random.randint(1, 25))

print(math.pi)

Maintenant, lorsque nous exécutons notre programme, nous obtiendrons une sortie qui ressemble à ceci, avec une approximation de pi comme dernière ligne de sortie :

18
10
7
13
10
3.141592653589793

L'instruction import vous permet d'importer un ou plusieurs modules dans votre programme Python, vous permettant de tirer parti des définitions créées dans ces modules.

Utiliser from … import

Pour faire référence à des éléments d'un module dans l'espace de noms de votre programme, vous pouvez utiliser l'instruction from ... import. Lorsque vous importez des modules de cette manière, vous pouvez référencer les fonctions par leur nom plutôt que par notation par points.

Dans cette construction, vous pouvez spécifier quelles définitions référencer directement.

Dans d'autres programmes, vous pouvez voir l'instruction import prendre des références à tout ce qui est défini dans le module en utilisant un astérisque (*) comme un caractère générique, mais cela est déconseillé par PEP 8.

Commençons par examiner l'importation d'une fonction spécifique, randint() du module random :

from random import randint

Ici, nous commençons par appeler le mot-clé from, puis random pour le module. Ensuite, nous utilisons le mot-clé import et appelons la fonction spécifique que nous aimerions utiliser.

Maintenant, lorsque nous implémentons cette fonction dans notre programme, nous n'écrirons plus la fonction en notation pointée comme random.randint() mais nous écrirons uniquement randint() :

from random import randint


for i in range(10):
    print(randint(1, 25))

Lorsque vous exécutez le programme, vous recevrez une sortie similaire à celle que nous avons reçue plus tôt.

Utiliser la construction from … import nous permet de faire référence aux éléments définis d'un module dans l'espace de noms de notre programme, nous évitant ainsi la notation par points.

Modules d'aliasing

Il est possible de modifier les noms des modules et de leurs fonctions dans Python en utilisant le mot-clé as.

Vous voudrez peut-être changer un nom parce que vous avez déjà utilisé le même nom pour quelque chose d'autre dans votre programme, un autre module que vous avez importé utilise également ce nom, ou vous voudrez peut-être abréger un nom plus long que vous utilisez fréquemment.

La construction de cette déclaration ressemble à ce qui suit :

import [module] as [another_name]

Modifions le nom du module math dans notre fichier de programme my_math.py. Nous allons changer le nom du module de math en m afin de l'abréger. Notre programme modifié ressemblera à ceci :

import math as m


print(m.pi)
print(m.e)

Dans le programme, nous faisons désormais référence à la constante pi comme m.pi plutôt que math.pi.

Pour certains modules, il est courant d'utiliser des alias. La documentation officielle du module matplotlib.pyplot recommande d'utiliser plt comme alias :

import matplotlib.pyplot as plt

Cela permet aux programmeurs d'ajouter le mot plus court plt à n'importe quelle fonction disponible dans le module, comme dans plt.show(). Vous pouvez voir cette déclaration d'importation d'alias en utilisation dans notre tutoriel « Comment tracer des données en Python 3 en utilisant matplotlib ».

Conclusion

Lorsque nous importons des modules, nous pouvons appeler des fonctions qui ne sont pas intégrées dans Python. Certains modules sont installés dans le cadre de Python, et d'autres seront installés via pip.

L'utilisation de modules nous permet de rendre nos programmes plus robustes et puissants car nous exploitons du code existant. Nous pouvons également créer nos propres modules pour nous-mêmes et pour d'autres programmeurs à utiliser dans de futurs programmes.