Module d'importation à partir d'un sous-répertoire en Python
-
Importer un module depuis le sous-répertoire en Python en utilisant
__init__.py
-
Importer un module depuis le sous-répertoire en Python en utilisant la méthode
sys.path.insert()
Ce tutoriel explique les différentes méthodes pour importer un module depuis le sous-répertoire en Python. Supposons que nous ayons un fichier dans un sous-répertoire du répertoire du projet, et que nous voulions importer ce fichier et utiliser ses méthodes dans notre code.
Nous pouvons importer le fichier à partir d’un sous-répertoire en Python en déclarant le sous-répertoire comme un paquet. Ainsi, Python le traitera comme un paquet, et nous pourrons importer le fichier pour ce répertoire. L’autre option peut être d’ajouter le sous-répertoire à la variable d’environnement PYTHONPATH
, et c’est le chemin où Python cherche les paquets à importer par défaut. Les détails et l’utilisation de ces méthodes sont donnés ci-dessous.
Importer un module depuis le sous-répertoire en Python en utilisant __init__.py
Le fichier __init__.py
est utilisé pour déclarer un répertoire comme un paquet. Le fichier __init__.py
empêche Python de mélanger le répertoire avec le même nom, donc pour différencier un simple répertoire d’un paquet, le fichier __init__.py
est utilisé.
Le fichier __init__.py
peut être vide, ou il peut contenir le code nécessaire pour initialiser le paquet et une liste des modules à importer avec le paquet ; cette liste est représentée par la variable __all__
.
Une fois que le fichier __init__.py
est ajouté au sous-répertoire, nous pouvons importer le fichier depuis le sous-répertoire comme le montre l’exemple de code suivant :
import subdirectory.myfile
Importer un module depuis le sous-répertoire en Python en utilisant la méthode sys.path.insert()
L’autre méthode pour importer un fichier à partir du sous-répertoire est d’ajouter ce répertoire au PYTHONPATH
. Le PYTHONPATH
est la variable d’environnement qui contient le chemin des répertoires que Python recherche pour importer les paquets.
Par conséquent, si nous ajoutons le sous-répertoire au PYTHONPATH
en utilisant la méthode sys.path.insert()
, Python regardera d’abord les répertoires dans PYTHONPATH
et l’importera de là.
La méthode sys.path.insert()
insérera le sous-répertoire dans la variable sys.path
ou PYTHONPATH
qui contient la liste des répertoires que Python cherchera pour importer le module requis.
L’exemple de code ci-dessous montre comment utiliser la méthode sys.path.insert()
pour importer un fichier depuis le sous-répertoire :
import myfile
import sys
sys.path.insert(0, "./subdirectory")