Comment vérifier si un module est importé en Python

PythonPythonBeginner
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 (lab), vous apprendrez à vérifier si un module est importé en Python. Le laboratoire couvre les bases de l'importation de modules, y compris la création et l'importation d'un module simple. Vous apprendrez à utiliser l'instruction import pour inclure des modules dans votre programme et accéder à leurs fonctions et variables.

Le laboratoire explore ensuite le dictionnaire sys.modules, qui stocke tous les modules importés dans la session Python actuelle. Vous apprendrez également à utiliser le module importlib pour vérifier si un module a été importé.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/ErrorandExceptionHandlingGroup(["Error and Exception Handling"]) python(("Python")) -.-> python/ModulesandPackagesGroup(["Modules and Packages"]) python/ModulesandPackagesGroup -.-> python/importing_modules("Importing Modules") python/ModulesandPackagesGroup -.-> python/creating_modules("Creating Modules") python/ModulesandPackagesGroup -.-> python/standard_libraries("Common Standard Libraries") python/ErrorandExceptionHandlingGroup -.-> python/catching_exceptions("Catching Exceptions") subgraph Lab Skills python/importing_modules -.-> lab-559543{{"Comment vérifier si un module est importé en Python"}} python/creating_modules -.-> lab-559543{{"Comment vérifier si un module est importé en Python"}} python/standard_libraries -.-> lab-559543{{"Comment vérifier si un module est importé en Python"}} python/catching_exceptions -.-> lab-559543{{"Comment vérifier si un module est importé en Python"}} end

Apprendre l'importation de modules

Dans cette étape, vous allez apprendre à importer des modules en Python. Les modules sont des fichiers contenant des définitions et des instructions Python. L'instruction import est utilisée pour inclure des modules dans votre programme actuel, vous permettant d'utiliser les fonctions et les variables définies à l'intérieur.

Tout d'abord, créons un module simple. Ouvrez l'éditeur VS Code dans l'environnement LabEx et créez un nouveau fichier nommé my_module.py dans le répertoire ~/project.

## ~/project/my_module.py
def greet(name):
    return f"Hello, {name}!"

PI = 3.14159

Ce module définit une fonction greet et une variable PI. Maintenant, créons un autre fichier Python pour importer et utiliser ce module. Créez un nouveau fichier nommé main.py dans le répertoire ~/project.

## ~/project/main.py
import my_module

name = "LabEx User"
greeting = my_module.greet(name)
print(greeting)
print("PI =", my_module.PI)

Dans ce fichier main.py, nous utilisons l'instruction import my_module pour inclure le module my_module que nous avons créé précédemment. Nous accédons ensuite à la fonction greet et à la variable PI en utilisant la notation pointée (my_module.greet, my_module.PI).

Pour exécuter ce code, ouvrez un terminal dans l'environnement LabEx (il devrait déjà être ouvert dans le panneau inférieur de VS Code). Assurez-vous que votre répertoire actuel est ~/project. Sinon, accédez-y en utilisant la commande cd :

cd ~/project

Maintenant, exécutez le script main.py en utilisant la commande python :

python main.py

Vous devriez voir la sortie suivante :

Hello, LabEx User!
PI = 3.14159

Cela démontre comment importer un module et utiliser son contenu dans un autre fichier Python.

Vérifier le dictionnaire sys.modules

Dans cette étape, vous allez explorer le dictionnaire sys.modules, qui est une partie cruciale du système d'importation de modules de Python. sys.modules est un dictionnaire qui contient tous les modules qui ont été importés dans la session Python actuelle. Comprendre ce dictionnaire peut vous aider à comprendre comment Python gère les modules.

Pour commencer, créons un script Python nommé check_modules.py dans le répertoire ~/project. Ce script importe le module sys et affiche les clés du dictionnaire sys.modules.

## ~/project/check_modules.py
import sys

print("Modules currently in sys.modules:")
for module_name in sys.modules.keys():
    print(module_name)

import my_module

print("\nModules after importing my_module:")
for module_name in sys.modules.keys():
    print(module_name)

Ce script importe d'abord le module sys. Ensuite, il parcourt les clés du dictionnaire sys.modules et affiche le nom de chaque module. Après cela, il importe le module my_module créé à l'étape précédente et affiche à nouveau le dictionnaire sys.modules pour montrer le module nouvellement importé.

Maintenant, exécutez le script en utilisant la commande python dans le terminal :

cd ~/project
python check_modules.py

Vous verrez une liste des modules qui sont déjà chargés lorsque l'interpréteur Python démarre, suivie de la même liste avec my_module ajouté après l'instruction import my_module. La sortie ressemblera à ceci (la liste exacte des modules peut varier) :

Modules currently in sys.modules:
builtins
sys
_frozen_importlib
_imp
_warnings
_io
... (many more modules)

Modules after importing my_module:
builtins
sys
_frozen_importlib
_imp
_warnings
_io
... (many more modules)
my_module

Notez que my_module est ajouté au dictionnaire sys.modules après l'instruction import. Ce dictionnaire agit comme un cache, donc si vous essayez d'importer le même module à nouveau, Python le récupérera simplement à partir de sys.modules au lieu de le recharger depuis le disque. Cette optimisation améliore les performances.

Utiliser importlib pour vérifier

Dans cette étape, vous allez apprendre à utiliser le module importlib pour importer des modules de manière programmée et vérifier leur existence. importlib fait partie de la bibliothèque standard de Python et offre un moyen d'interagir avec le système d'importation.

Créons un script Python nommé verify_import.py dans le répertoire ~/project. Ce script utilisera importlib pour importer my_module et vérifier si l'importation a réussi.

## ~/project/verify_import.py
import importlib

module_name = "my_module"

try:
    module = importlib.import_module(module_name)
    print(f"Module '{module_name}' imported successfully.")
    print(f"Greeting: {module.greet('LabEx')}")
except ImportError:
    print(f"Failed to import module '{module_name}'.")

Dans ce script, nous utilisons importlib.import_module() pour importer my_module. Si le module est trouvé et importé avec succès, le script affiche un message de réussite et appelle la fonction greet du module. Si le module n'est pas trouvé, une erreur ImportError est levée et le script affiche un message d'erreur.

Maintenant, exécutez le script en utilisant la commande python dans le terminal :

cd ~/project
python verify_import.py

Vous devriez voir la sortie suivante :

Module 'my_module' imported successfully.
Greeting: Hello, LabEx!

Si vous changez module_name pour un module inexistant, comme "nonexistent_module", et que vous exécutez le script à nouveau, vous verrez :

Failed to import module 'nonexistent_module'.

Cela démontre comment utiliser importlib pour importer des modules de manière dynamique et gérer les erreurs d'importation potentielles. Cela est particulièrement utile dans les situations où vous devez charger des modules en fonction de l'entrée de l'utilisateur ou de fichiers de configuration.

Résumé

Dans ce laboratoire (lab), vous avez appris à importer des modules en Python. Vous avez créé un module nommé my_module.py contenant une fonction greet et une variable PI. Ensuite, vous avez créé main.py pour importer my_module et utiliser son contenu, ce qui démontre comment l'instruction import permet d'intégrer des modules dans votre programme et comment accéder aux fonctions et variables à l'intérieur de ces modules à l'aide de la notation pointée.

Vous avez également commencé à explorer le dictionnaire sys.modules, qui contient tous les modules qui ont été importés dans la session Python actuelle, une partie cruciale du système d'importation de modules de Python.