logo

Python: importació des del directori principal

En aquest article, aprendrem a importar un mòdul del directori principal. Des de Python 3.3, no es permet fer referència o importar un mòdul al directori principal, a partir de l'exemple següent ho podeu entendre clarament.

Al directori principal, tenim un subdirectori, fitxer geeks.py i al subdirectori, tenim un fitxer python anomenat temp.py, ara provem si podem importar el mòdul geeks al directori principal des del fitxer temp.py a el subdirectori.



geeks.py (mòdul al directori principal)

Python 3




són cantants





def> geek_method():> >print>(>'This method in geeks module.......bye'>)>

>

>

temp.py (fitxer Python al subdirectori)

Python 3




# importing the module in> # parent directory> from> parentdirectory>import> geeks> # calling the func1() method> # from geeks module> geeks.geek_method()>

>

>

Com hem comentat anteriorment, no és possible importar un mòdul del directori principal, de manera que això provoca un error com aquest.

Traceback (última trucada):

Fitxer C:/Usuaris/sai mohan pulamolu/Desktop/parentdirectory/subdirectory/temp.py, línia 2, a

dels geeks d'importació del directori principal

ModuleNotFoundError: cap mòdul anomenat 'directori pare'

diccionari d'ordenació python

Ara anem a aprendre a importar un mòdul des de directori pare:

Per importar un mòdul, el directori que té aquest mòdul ha d'estar present a PYTHONPATH. És una variable d'entorn que conté la llista de paquets que Python carregarà. La llista de paquets presents a PYTHONPATH també està present a sys.path, de manera que afegirà la ruta del directori principal al sys.path.

Per al nostre treball, utilitzem tres enfocaments diferents que s'expliquen a continuació amb l'ajuda d'exemples.

Mètode 1: importar des del directori principal mitjançant el mètode sys.path

Aquí utilitzarem el mòdul sys i establirem la ruta directament al mòdul requerit.

Afegiu el directori principal al fitxer sys.path utilitzant el afegir() mètode . És una funció integrada del mòdul sys que es pot utilitzar amb una variable de ruta per afegir una ruta específica perquè els intèrprets la cerquin. L'exemple següent mostra com es pot fer això.

Python 3


windows.open javascript



import> sys> # setting path> sys.path.append(>'../parentdirectory'>)> # importing> from> parentdirectory.geeks>import> geek_method> # using> geek_method()>

>

>

Sortida:

This method in geeks module.......bye>

Mètode 2: importar des del directori principal utilitzant mètode os.path.abspath().

Aquí utilitzarem el mòdul sys així com el mòdul de ruta per obtenir el directori i establir la ruta directament al mòdul requerit.

Sintaxi: os.path.abspath(camí)

Paràmetre:
Camí: Un objecte semblant a un camí que representa una ruta del sistema de fitxers.

Tipus de retorn: Aquest mètode retorna una versió normalitzada de la ruta del nom de ruta.

En primer lloc, obtindrem el nom del directori on el fitxer temp.py està actualment utilitzant el path.path(__file__). abspath(), en segon lloc afegiu el directori al fitxer sys.path .append per comprovar, farem servir el seu mètode.

Python 3


java públic vs privat



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()>

>

>

Sortida:

 This method in geeks module.......bye>

Mètode 3: importar des del directori principal utilitzant os.path.dirname mètode

Aquí utilitzarem el mòdul sys així com el mòdul os per obtenir el directori (actual i pare) i establir el camí directament al mòdul requerit.

clau ins

Sintaxi: os.path.dirname(camí)

Paràmetre:
Camí : Un objecte semblant a un camí que representa una ruta del sistema de fitxers.

Tipus de retorn: Aquest mètode retorna un valor de cadena que representa el nom del directori del camí especificat.

En primer lloc, obtindrem el directori actual utilitzant el os.path.dirname (os.path.realpath(__file__)), en segon lloc, obtindrem el directori principal utilitzant el os.path.dirname(), finalment, afegiu el pare. directori al sys.path per comprovar, farem servir el seu mètode.

Python 3




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()>

>

>

Sortida: