logo

Python: importa dalla directory principale

In questo articolo impareremo come importare un modulo dalla directory principale. Da Python 3.3, non è consentito fare riferimento o importare un modulo nella directory principale. Dall'esempio seguente puoi capirlo chiaramente.

Nella directory principale, abbiamo una sottodirectory, il file geeks.py e nella sottodirectory, abbiamo un file python denominato temp.py, ora proviamo se riusciamo a importare il modulo geeks nella directory principale dal file temp.py in la sottodirectory.



geeks.py (modulo nella directory principale)

Python3




1 miliardo a milione





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

>

>

temp.py (file Python nella sottodirectory)

Python3




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

>

>

Come abbiamo discusso in precedenza, non è possibile importare un modulo dalla directory principale, quindi questo porta a un errore simile a questo.

note a piè di pagina del ribasso

Traceback (ultima chiamata per ultima):

File C:/Users/sai mohan pulamolu/Desktop/parentdirectory/subdirectory/temp.py, riga 2, in

dai fanatici dell'importazione della directory principale

ModuleNotFoundError: nessun modulo denominato 'parentdirectory'

Ora impariamo come importare un modulo dal file directory principale:

Per importare un modulo, la directory che contiene quel modulo deve essere presente su PYTHONPATH. È una variabile d'ambiente che contiene l'elenco dei pacchetti che verranno caricati da Python. L'elenco dei pacchetti presenti in PYTHONPATH è presente anche in sys.path, quindi aggiungerà il percorso della directory principale al sys.path.

Per il nostro lavoro utilizziamo tre diversi approcci che vengono spiegati di seguito con l'aiuto di esempi.

Metodo 1: importa dalla directory principale utilizzando il metodo sys.path

Qui utilizzeremo il modulo sys e imposteremo il percorso direttamente al modulo richiesto.

Aggiungi la directory principale al file sys.path usando il aggiungere() metodo . È una funzione incorporata del modulo sys che può essere utilizzata con una variabile path per aggiungere un percorso specifico da ricercare per gli interpreti. L'esempio seguente mostra come è possibile eseguire questa operazione.

Python3


np standard



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

>

>

Produzione:

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

Metodo 2: importa dalla directory principale utilizzando metodo os.path.abspath()

Qui utilizzeremo il modulo sys così come il modulo path per ottenere la directory e impostare il percorso direttamente al modulo richiesto.

funzione statica in Java

Sintassi: os.path.abspath(percorso)

Parametro:
Sentiero: Un oggetto simile a un percorso che rappresenta un percorso del file system.

Tipo di reso: Questo metodo restituisce una versione normalizzata del percorso del nome percorso.

Per prima cosa otterremo il nome della directory in cui il file temp.py sta attualmente utilizzando path.path(__file__). abspath(), quindi aggiungere la directory al file sys.path .append per controllare, utilizzeremo il suo metodo.

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

>

>

Produzione:

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

Metodo 3: importa dalla directory principale utilizzando os.percorso.nomedir metodo

Qui utilizzeremo il modulo sys così come il modulo os per ottenere la directory (attuale e quella principale) e imposteremo il percorso direttamente al modulo richiesto.

Sintassi: os.path.dirname(percorso)

Parametro:
sentiero : un oggetto simile a un percorso che rappresenta un percorso del file system.

Tipo di reso: Questo metodo restituisce un valore stringa che rappresenta il nome della directory dal percorso specificato.

In primo luogo, otterremo la directory corrente utilizzando os.path.dirname (os.path.realpath(__file__)), in secondo luogo, otterremo la directory principale utilizzando os.path.dirname(), infine, aggiungeremo la directory principale directory in sys.path per verificare, utilizzeremo il suo metodo.

Python3


nome di



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

>

>

Produzione: