Comment importer des modules dans Python 3

introduction

Le langage de programmation Python est livré avec une variété debuilt-in functions. Parmi celles-ci figurent plusieurs fonctions communes, 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

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

Modules sont des fichiers Python.py constitués de code Python. Tout fichier Python peut être référencé en tant que module. Un fichier Python appeléhello.py a le nom de modulehello qui peut être importé dans d'autres fichiers Python ou utilisé sur l'interpréteur de ligne de commande Python. Vous pouvez apprendre à créer vos propres modules en lisantHow To Write Modules in Python 3.

Les modules peuventdefine functions,classes etvariables 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 à l'aide de l'instructionimport. Lorsque vous faites cela, vous exécutez le code du module, en conservant les étendues des définitions afin que votre fichier actuel puisse les utiliser.

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

Ce didacticiel vous guidera à travers la vérification et l'installation de modules, l'importation de modules et les modules d'alias.

Vérification et installation de modules

Un certain nombre de modules sont intégrés auxPython Standard Library, qui contiennent de nombreux modules qui permettent d'accéder aux fonctionnalités du système ou fournissent des solutions standardisées. La bibliothèque standard Python fait partie de chaque installation Python.

Pour vérifier que ces modules Python sont prêts à fonctionner, entrez dans voslocal Python 3 programming environment ouserver-based programming environment et démarrez l'interpréteur Python dans votre ligne de commande comme ceci:

python

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

import math

Puisquemath est un module intégré, votre interpréteur doit terminer la tâche sans retour, en retournant à l'invite. Cela signifie que vous n’avez rien à faire pour commencer à utiliser le modulemath.

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

import matplotlib

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

OutputImportError: No module named 'matplotlib'

Vous pouvez désactiver l'interpréteur Python avecCTRL + D puis installermatplotlib avecpip.

Ensuite, nous pouvons utiliserpip pour installer le modulematplotlib:

pip install matplotlib

Une fois installé, vous pouvez importermatplotlib dans l'interpréteur Python en utilisantimport matplotlib, et cela se terminera sans erreur.

Importation de modules

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

Une instructionimport est constituée du mot-cléimport avec le nom du module.

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

Ainsi, dans le fichier programme Pythonmy_rand_int.py, nous importerions le modulerandom 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 mettons à notre disposition dans notre programme actuel en tant qu'espace de nommage séparé. Cela signifie que nous devrons nous référer à la fonction en notation par points, comme dans[module].[function].

En pratique, avec l'exemple du modulerandom, 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 unfor loop pour montrer comment nous allons appeler une fonction du modulerandom dans notre programmemy_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 modulerandom sur la première ligne, puis se déplace dans une bouclefor qui fonctionnera avec 10 éléments. Dans la boucle, le programme imprimera un nombre entier aléatoire compris entre 1 et 25 (inclus). Les entiers1 et25 sont passés àrandom.randint() comme paramètres.

Lorsque nous exécutons le programme avecpython 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 ressembleront à ceci:

Output6
9
1
14
3
22
10
1
15
9

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

Si vous souhaitez utiliser des fonctions de plus d'un module, vous pouvez le faire en ajoutant plusieurs instructionsimport:

my_rand_int.py

import random
import math

Vous pouvez voir des programmes qui importent plusieurs modules avec des virgules les séparant - comme dansimport random, math - mais ce n'est pas cohérent avec lesPEP 8 Style Guide.

Pour utiliser notre module supplémentaire, nous pouvons ajouter la constantepi demath à 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 recevons une sortie qui ressemble à ceci, avec une approximation de pi comme dernière ligne de sortie:

Output18
10
7
13
10
3.141592653589793

L'instructionimport vous permet d'importer un ou plusieurs modules dans votre programme Python, vous permettant d'utiliser les définitions construites dans ces modules.

Utilisation defromimport

Pour faire référence à des éléments d'un module dans l'espace de noms de votre programme, vous pouvez utiliser l'instructionfromimport. Lorsque vous importez des modules de cette façon, vous pouvez vous référer aux fonctions par leur nom plutôt que par la notation par points.

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

Dans d'autres programmes, vous pouvez voir l'instructionimport 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é parPEP 8.

Commençons par importer une fonction spécifique,randint() depuis le modulerandom:

my_rand_int.py

from random import randint

Ici, nous appelons d'abord le mot-cléfrom, puisrandom 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 par points commerandom.randint(), mais à la place, nous écrirons simplementrandint():

my_rand_int.py

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 précédemment.

L'utilisation de la constructionfromimport nous permet de référencer les éléments définis d'un module dans l'espace de noms de notre programme, évitant ainsi la notation par points.

Aliasing Modules

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

Vous souhaiterez peut-être modifier un nom car vous avez déjà utilisé le même nom pour un autre élément de votre programme, un autre module que vous avez importé utilise également ce nom ou vous souhaitez peut-être abréger un nom plus long que vous utilisez souvent.

La construction de cette déclaration ressemble à ceci:

import [module] as [another_name]

Modifions le nom du modulemath dans notre fichier programmemy_math.py. Nous allons changer le nom du module demath enm 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 nous référons maintenant à la constantepi en tant quem.pi plutôt quemath.pi.

Pour certains modules, il est courant d’utiliser des alias. Lematplotlib.pyplot module’s official documentation appelle à utiliserplt comme alias:

import matplotlib.pyplot as plt

Cela permet aux programmeurs d'ajouter le mot le plus courtplt à l'une des fonctions disponibles dans le module, comme dansplt.show(). Vous pouvez voir cette instruction d'importation d'alias en cours d'utilisation dans notre «https://www.digitalocean.com/community/tutorials/how-to-plot-data-in-python-3-using-matplotlib[Comment tracer des données en Python 3 Utilisation du didacticielmatplotlib]. »

Conclusion

Lorsque nous importons des modules, nous pouvons appeler des fonctions qui ne sont pas intégrées à Python. Certains modules sont installés dans le cadre de Python, et certains seront installés viapip.

L’utilisation de modules nous permet de rendre nos programmes plus robustes et puissants au fur et à mesure que nous exploitons le code existant. Nous pouvons également utilisercreate our own modules pour nous-mêmes et pour d'autres programmeurs dans de futurs programmes.