Accéder au contenu principal

Tutoriel sur les modules Python : Les importer, les écrire et les utiliser

Apprenez à créer et à importer des modules Python. Découvrez les meilleures pratiques, des exemples et des astuces pour écrire du code Python réutilisable, organisé et efficace !
Actualisé 28 mars 2025  · 8 min de lecture

En tant que débutant, vous commencez à travailler avec Python sur l'interpréteur. Plus tard, lorsque vous devrez écrire des programmes plus longs, vous commencerez à écrire des scripts. Au fur et à mesure que votre programme prend de l'ampleur, vous souhaiterez peut-être le diviser en plusieurs fichiers pour faciliter la maintenance et la réutilisation du code. La solution à ce problème réside dans les modules. Vous pouvez définir vos fonctions les plus utilisées dans un module et l'importer, au lieu de copier leurs définitions dans différents programmes. Un module peut être importé par un autre programme pour utiliser ses fonctionnalités. C'est ainsi que vous pouvez également utiliser la bibliothèque standard de Python.

En termes simples, un module est un fichier composé de code Python. Il peut définir des fonctions, des classes et des variables et peut également inclure du code exécutable. Tout fichier Python peut être référencé en tant que module. Un fichier contenant du code Python, par exemple : test.py est appelé un module, et son nom serait test.

Il existe plusieurs méthodes pour écrire des modules, mais la plus simple consiste à créer un fichier avec une extension .py, qui contient des fonctions et des variables.

Avant de commencer à écrire vos propres modules, je vous recommande de jeter un œil à notre cours Intro to Python for Data Science, qui couvre les bases du langage de programmation Python.

Apprenez Python à partir de zéro

Maîtrisez Python pour la science des données et acquérez des compétences recherchées.
Commencez à apprendre gratuitement

Importer des modules en Python

Pour utiliser les fonctionnalités présentes dans un module, vous devez les importer dans votre programme actuel. Vous devez utiliser le mot-clé import avec le nom du module souhaité. Lorsque l'interpréteur rencontre une déclaration import, il importe le module dans votre programme actuel. Vous pouvez utiliser les fonctions à l'intérieur d'un module en utilisant l'opérateur point (.) avec le nom du module. Tout d'abord, voyons comment utiliser les modules de la bibliothèque standard. Dans l'exemple ci-dessous, le module math est importé dans le programme afin que vous puissiez utiliser la fonction sqrt().

import math  # Import the math module
num = 4
print(math.sqrt(num))  # Call the sqrt() function from the math module

Pour des raisons d'efficacité, chaque module n'est importé qu'une seule fois par session de l'interprète. Par conséquent, si vous modifiez vos modules, vous devez redémarrer l'interpréteur.

Si vous souhaitez tester un seul module de manière interactive, utilisez reload(), par exemple : reload(module_name). Dans Python 3, vous devez importer importlib avant d'utiliser reload():

import importlib
importlib.reload(module_name)

Comment écrire vos propres modules Python

Maintenant que vous avez appris à importer un module dans votre programme, il est temps d'écrire le vôtre et de l'utiliser dans un autre programme. L'écriture d'un module se fait comme celle de n'importe quel autre fichier Python. Commençons par écrire une fonction pour additionner/soustraire deux nombres dans un fichier calculation.py.

def add(x,y):
    return (x+y)
def sub(x,y):
    return (x-y)

Si vous essayez d'exécuter ce script sur la ligne de commande, rien ne se passera car vous n'avez pas demandé au programme de faire quoi que ce soit. Créez un autre script Python dans le même répertoire sous le nom module_test.py et écrivez-y le code suivant.

import calculation            #Importing calculation module
print(calculation.add(1,2))   #Calling function defined in the calculation module 

Si vous exécutez module_test.py, vous verrez "3" en sortie. Lorsque l'interpréteur a rencontré l'instruction import, il a importé le module calculation dans votre code et, en utilisant l'opérateur point, vous avez pu accéder à la fonction add().

Autres façons d'importer des modules en Python

Il existe d'autres façons d'importer des modules :

  • from .. import déclaration
  • from .. import * déclaration
  • renommer le module importé

L'utilisation from module import name

L'instruction from..import vous permet d'importer des fonctions/variables spécifiques d'un module au lieu de tout importer. Dans l'exemple précédent, lorsque vous avez importé calculation dans module_test.py, les fonctions add() et sub() ont été importées. Et si vous n'aviez besoin que de la fonction add() dans votre code ? Voici un exemple illustrant l'utilisation de from..import.

from calculation import add
print(add(1,2))

Dans l'exemple ci-dessus, seule la fonction add() est importée et utilisée. Remarquez l'utilisation de add()? Vous pouvez maintenant y accéder directement sans utiliser le nom du module. Vous pouvez également importer plusieurs attributs en les séparant par une virgule dans la déclaration d'importation. Regardez l'exemple suivant :

from calculation import add,sub

L'utilisation from module import *

Vous pouvez importer tous les attributs d'un module à l'aide de cette déclaration. Cela rendra tous les attributs du module importé visibles dans votre code.

Voici un exemple illustrant l'utilisation de from .. import *:

from calculation import *
print(add(1,2))
print(sub(3,2))

Notez que dans le monde professionnel, vous devriez éviter d'utiliser from..import et from..import*, car cela rend votre code moins lisible.

Renommer des modules en Python

Vous pouvez renommer le module que vous importez, ce qui peut être utile lorsque vous souhaitez donner un nom plus significatif au module ou lorsque le nom du module est trop long pour être utilisé de manière répétée. Vous pouvez utiliser le mot-clé as pour le renommer. L'exemple suivant explique comment l'utiliser dans votre programme.

import calculation as cal
print(cal.add(1,2))

Vous avez gagné du temps en renommant calculation en cal.

Notez que vous ne pouvez plus utiliser calculation.add(1,2), car calculation n'est plus reconnu dans votre programme.

Chemin de recherche de modules en Python

Il se peut que vos modules soient utilisés dans différents programmes ou projets et que leur emplacement physique dans le répertoire soit différent. Si vous souhaitez utiliser un module résidant dans un autre répertoire, Python vous propose quelques options.

Lorsque vous importez un module nommé calculation, l'interpréteur recherche d'abord un module intégré portant ce nom. S'il ne le trouve pas, il recherche alors un fichier nommé calculation.py dans une liste de répertoires donnée par la variable sys.path. sys.path contient ces emplacements :

  • Le répertoire contenant le script d'entrée (ou le répertoire courant)

  • PYTHONPATH (une liste de noms de répertoires avec la même syntaxe que la variable shell PATH)

  • La valeur par défaut dépend de l'installation

Supposons que module_test.py se trouve dans le répertoire /home/datacamp/ et que vous avez déplacé calculation.py vers /home/test/. Vous pouvez modifier sys.path pour inclure /home/test/ dans la liste des chemins, dans lesquels l'interpréteur Python recherchera le module. Pour ce faire, vous devez modifier module_test.py de la manière suivante :

import sys
sys.path.append('/home/test/')

import calculation
print(calculation.add(1,2))

Fichiers compilés par octets en Python

L'importation d'un module augmentant le temps d'exécution des programmes, Python dispose de quelques astuces pour l'accélérer. L'une des méthodes consiste à créer des fichiers compilés par octets avec l'extension .pyc.

En interne, Python convertit le code source en une forme intermédiaire appelée bytecode. Il le traduit ensuite dans la langue maternelle de votre ordinateur et l'exécute. Ce fichier .pyc est utile lorsque vous importez le module la prochaine fois à partir d'un autre programme - cela sera beaucoup plus rapide puisqu'une partie du traitement nécessaire à l'importation d'un module a déjà été effectuée. De plus, ces fichiers compilés par octets sont indépendants de la plate-forme.

Notez que ces fichiers .pyc sont généralement créés dans le même répertoire que les fichiers .py correspondants. Si Python n'a pas le droit d'écrire dans les fichiers de ce répertoire, les fichiers .pyc ne seront pas créés. Ces fichiers sont généralement stockés dans le répertoire __pycache__ avec vos fichiers .py.

La fonction Python dir()

La fonction dir() est utilisée pour trouver tous les noms définis dans un module. Elle renvoie une liste triée de chaînes de caractères contenant les noms définis dans un module.

import calculation
print(calculation.add(1,2))
print(dir(calculation))

Sortie :

['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'sub']

Dans la sortie, vous pouvez voir les noms des fonctions que vous avez définies dans le module, add & sub. L'attribut __name__ contient le nom du module. Tous les attributs commençant par un trait de soulignement sont des attributs Python par défaut associés à un module.

Conclusion

La création d'un module est nécessaire pour une meilleure gestion du code et sa réutilisation. Python vous fournit quelques modules intégrés, qui peuvent être importés en utilisant le mot-clé import. Python vous permet également de créer vos propres modules et de les utiliser dans vos programmes. Il vous donne des fichiers compilés par octets pour surmonter le coût de l'utilisation des modules, ce qui rend l'exécution plus rapide. Vous pouvez utiliser dir() pour connaître les attributs définis dans le module utilisé dans un programme. Cette fonction peut être utilisée aussi bien pour les modules prédéfinis que pour les modules définis par l'utilisateur.

Si vous souhaitez en savoir plus sur Python, vous pouvez jeter un œil à notre cours Python intermédiaire pour la science des données.

FAQ

Puis-je importer un module à l'intérieur d'une fonction ?

Oui. Vous pouvez importer des modules à l'intérieur de fonctions, mais il est généralement préférable de les importer en tête de fichier pour des raisons de clarté et de performance.

Que se passe-t-il si deux modules portent le même nom ?

Python importera la première correspondance trouvée dans le chemin de recherche des modules (sys.path). Soyez prudent dans l'attribution des noms afin d'éviter les conflits.

Dois-je compiler manuellement mon module au format .pyc ?

Non. Python crée automatiquement les fichiers .pyc lorsque vous importez un module - si les droits d'écriture sont disponibles.

Comment puis-je vérifier l'origine de l'importation d'un module ?

Utilisez l'attribut __file__ du module :

import math
print(math.__file__)

Est-il possible d'utiliser from module import * ?

Cela fonctionne mais n'est pas recommandé dans un code de production. Cela peut polluer l'espace de noms et rendre plus difficile le suivi de ce qui est utilisé.

Puis-je recharger un module après l'avoir modifié ?

Oui, dans une session interactive, utilisez importlib.reload():

import importlib
import mymodule
importlib.reload(mymodule)
Sujets

Apprenez-en plus sur Python avec ces cours !

Certification disponible

Cours

Introduction à Python

4 hr
6.1M
Maîtrisez les bases de l'analyse de données avec Python en seulement quatre heures. Ce cours en ligne vous présentera l'interface Python et explorera les packages populaires.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow