Comment importer des modules en Python 3

Introduction

Le langage de programmation Python est livré avec une variété de fonctions intégrées. Parmi celles-ci se trouvent plusieurs fonctions courantes, notamment :

  • print() qui imprime les 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 consistent en du code Python. Tout fichier Python peut être référencé en tant que 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 ligne de commande 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 auxquelles vous pouvez faire référence dans d’autres fichiers Python .py ou via l’interpréteur de commandes Python.

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

Lorsque Python importe un module appelé hello par exemple, l’interpréteur recherchera d’abord un module intégré appelé hello. Si un module intégré n’est pas trouvé, l’interpréteur Python recherchera ensuite 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 de modules, l’importation de modules et l’aliasing de modules.

Prérequis

Vous devez avoir Python 3 installé et un environnement de programmation configuré sur votre ordinateur ou votre serveur. Si vous n’avez pas encore configuré d’environnement de programmation, 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 adapté à votre système d’exploitation (Ubuntu, CentOS, Debian, etc.)

Vérification et Installation des Modules

Il existe plusieurs modules intégrés dans la Bibliothèque Standard Python, qui contient de nombreux modules fournissant un accès à la fonctionnalité du système ou proposant des solutions standardisées. La Bibliothèque Standard Python fait partie de chaque installation Python.

Info: Pour suivre les exemples de code de ce tutoriel, ouvrez un shell interactif Python sur votre système local en exécutant la commande python3. Ensuite, vous pouvez copier, coller ou modifier les exemples en les ajoutant après le prompt >>>.

Pour vérifier que ces modules Python sont prêts à être utilisés, 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

À partir de l’interpréteur, vous pouvez exécuter l’instruction import pour vous assurer que le module donné est prêt à être appelé, comme ceci :

  1. import math

Comme math est un module intégré, votre interpréteur devrait exécuter la tâche sans aucun retour, revenant à l’invite. Cela signifie que vous n’avez rien à faire pour commencer à utiliser le module math.

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

  1. import matplotlib

Si matplotlib n’est pas installé, vous recevrez une erreur comme ceci :

Output
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 qu’il est installé, vous pouvez importer matplotlib dans l’interpréteur Python en utilisant import matplotlib, et cela se terminera sans erreur.

Importation des modules

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

Une déclaration import est composée du mot-clé import suivi du nom du module.

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

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

my_rand_int.py
import random

Lorsque nous importons un module, nous le rendons disponible dans notre programme actuel en tant que namespace distinct. Cela signifie que nous devrons faire référence à la fonction par 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 retourner un entier aléatoire, ou
  • random.randrange() qui appelle la fonction pour retourner un élément aléatoire d’une plage spécifiée.

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

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 passe dans une boucle for qui travaillera avec 10 éléments. Dans la boucle, le programme affichera 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 différents entiers à chaque exécution du programme, mais ils généreront quelque chose comme ceci :

Output
6 9 1 14 3 22 10 1 15 9

Les entiers ne doivent jamais être inférieurs à 1 ou supérieurs à 25.

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

my_rand_int.py
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 Guide de style PEP 8.

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

my_rand_int.py
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 recevrons une sortie qui ressemble à ceci, avec une approximation de pi comme dernière ligne de sortie :

Output
18 10 7 13 10 3.141592653589793

La déclaration import vous permet d’importer un ou plusieurs modules dans votre programme Python, vous permettant ainsi d’utiliser les définitions construites dans ces modules.

Utilisation de fromimport

Pour faire référence aux éléments d’un module dans l’espace de noms de votre programme, vous pouvez utiliser l’instruction fromimport. Lorsque vous importez des modules de cette manière, vous pouvez faire référence aux fonctions par leur nom plutôt que par la notation pointée.

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 caractère générique, mais cela est déconseillé par PEP 8.

Commençons d’abord par importer une fonction spécifique, randint(), du module random:

my_rand_int.py
from random import randint

Ici, nous utilisons d’abord 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 écrirons simplement randint():

my_rand_int.py
from random import randint


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

Lorsque vous exécutez le programme, vous obtiendrez une sortie similaire à ce que nous avons reçu précédemment.

L’utilisation de la construction fromimport nous permet de faire référence aux éléments définis d’un module dans l’espace de noms de notre programme, nous permettant d’éviter la notation pointée.

Aliasage des modules

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

Vous pouvez vouloir changer un nom car vous avez déjà utilisé le même nom pour autre chose dans votre programme, un autre module que vous avez importé utilise également ce nom, ou vous voulez peut-être abréger un nom plus long que vous utilisez souvent.

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 math en m afin de l’abréger. Notre programme modifié ressemblera à ceci :

my_math.py
import math as m


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

Dans le programme, nous faisons maintenant 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 laquelle des fonctions disponibles dans le module, comme dans plt.show(). Vous pouvez voir cette déclaration d’importation d’alias utilisée dans notre tutoriel « Comment tracer des données en Python 3 en utilisant matplotlib. »

Conclusion

Lorsque nous importons des modules, nous sommes capables d’appeler des fonctions qui ne sont pas intégrées à Python. Certains modules sont installés dans le cadre de Python, et certains nous les installerons 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 des programmes futurs.

Source:
https://www.digitalocean.com/community/tutorials/how-to-import-modules-in-python-3