Dans cet article, nous apprendrons comment importer un module depuis le répertoire parent. À partir de Python 3.3, le référencement ou l'importation d'un module dans le répertoire parent n'est pas autorisé. À partir de l'exemple ci-dessous, vous pouvez clairement comprendre cela.
Dans le répertoire parent, nous avons un sous-répertoire, le fichier geeks.py et dans le sous-répertoire, nous avons un fichier python nommé temp.py. Essayons maintenant si nous pouvons importer le module geeks dans le répertoire parent à partir du fichier temp.py dans le sous-répertoire.
geeks.py (module dans le répertoire parent)
Python3
exploration de données
def> geek_method():> >print>(>'This method in geeks module.......bye'>)> |
>
>
temp.py (fichier python dans le sous-répertoire)
Python3
# importing the module in> # parent directory> from> parentdirectory>import> geeks> # calling the func1() method> # from geeks module> geeks.geek_method()> |
>
>
Comme nous l'avons vu précédemment, il n'est pas possible d'importer un module depuis le répertoire parent, cela conduit donc à une erreur similaire à celle-ci.
Traceback (dernier appel le plus récent) :
Fichier C:/Users/sai mohan pulamolu/Desktop/parentdirectory/subdirectory/temp.py, ligne 2, dans
comment obtenir la date actuelle en Javadepuis le répertoire parent importer des geeks
ModuleNotFoundError : aucun module nommé « parentdirectory »
Apprenons maintenant comment importer un module depuis le Dossier Parent:
Afin d'importer un module, le répertoire contenant ce module doit être présent sur PYTHONPATH. C'est une variable d'environnement qui contient la liste des packages qui seront chargés par Python. La liste des packages présents dans PYTHONPATH est également présente dans sys.path, elle ajoutera donc le chemin du répertoire parent au sys.chemin.
Pour notre travail, nous utilisons trois approches différentes qui sont expliquées ci-dessous à l'aide d'exemples.
Méthode 1 : importer depuis le répertoire parent à l'aide de la méthode sys.path
Ici, nous utiliserons le module sys et définirons le chemin directement vers le module requis.
Ajoutez le répertoire parent au chemin système en utilisant le ajouter() méthode . Il s'agit d'une fonction intégrée du module sys qui peut être utilisée avec une variable de chemin pour ajouter un chemin spécifique à rechercher par les interprètes. L'exemple suivant montre comment cela peut être réalisé.
Python3
modèle de conception d'usine
import> sys> # setting path> sys.path.append(>'../parentdirectory'>)> # importing> from> parentdirectory.geeks>import> geek_method> # using> geek_method()> |
>
>
Sortir:
This method in geeks module.......bye>
Méthode 2 : importer depuis le répertoire parent en utilisant Méthode os.path.abspath()
Ici, nous utiliserons le module sys ainsi que le module path pour obtenir le répertoire et définirons le chemin directement vers le module requis.
Syntaxe: os.path.abspath(chemin)
Paramètre:
Chemin: Un objet de type chemin représentant un chemin de système de fichiers.Type de retour : Cette méthode renvoie une version normalisée du chemin d'accès.
Tout d’abord, nous obtiendrons le nom du répertoire dans lequel le fichier temp.py utilise actuellement le path.path(__file__). abspath(), ajoutez ensuite le répertoire au chemin système .append pour vérifier, nous utiliserons sa méthode.
Python3
import> path> import> sys> # directory reach> directory>=> path.path(__file__).abspath()> # setting path> sys.path.append(directory.parent.parent)> # importing> from> parentdirectory.geeks>import> geek_method> # using> geek_method()> |
Katrina Kaif
>
>
Sortir:
This method in geeks module.......bye>
Méthode 3 : importer depuis le répertoire parent en utilisant os.path.dirname méthode
Ici, nous utiliserons le module sys ainsi que le module os pour obtenir le répertoire (actuel ainsi qu'un parent) et définirons le chemin directement vers le module requis.
Syntaxe: os.path.dirname(chemin)
Paramètre:
chemin : Un objet de type chemin représentant un chemin de système de fichiers.Type de retour : Cette méthode renvoie une valeur de chaîne qui représente le nom du répertoire du chemin spécifié.
Premièrement, nous obtiendrons le répertoire actuel en utilisant os.path.dirname (os.path.realpath(__file__)), deuxièmement, nous obtiendrons le répertoire parent en utilisant os.path.dirname(), enfin, ajouterons le parent. répertoire vers le chemin système pour vérifier, nous utiliserons sa méthode.
dormir pour javascript
Python3
import> sys> import> os> # getting the name of the directory> # where the this file is present.> current>=> os.path.dirname(os.path.realpath(__file__))> # Getting the parent directory name> # where the current directory is present.> parent>=> os.path.dirname(current)> # adding the parent directory to> # the sys.path.> sys.path.append(parent)> # now we can import the module in the parent> # directory.> import> geeks> geeks.geek_method()> |
>
>
Sortir:
