Importa modulo dalla sottodirectory in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Importa un modulo dalla sottodirectory in Python usando __init__.py
  2. Importa un modulo dalla sottodirectory in Python usando il metodo sys.path.insert()
Importa modulo dalla sottodirectory in Python

Questo tutorial spiegherà i vari metodi per importare un modulo dalla sottodirectory in Python. Supponiamo di avere un file in una sottodirectory della directory del progetto e di voler importare il file e utilizzare i suoi metodi nel nostro codice.

Possiamo importare il file da una sottodirectory in Python dichiarando la sottodirectory come un pacchetto. Quindi Python lo tratterà come un pacchetto e saremo in grado di importare il file per quella directory. L’altra opzione può essere quella di aggiungere la sottodirectory alla variabile d’ambiente PYTHONPATH, ed è il percorso in cui Python cerca i pacchetti da importare per impostazione predefinita. I dettagli e l’uso di questi metodi sono forniti di seguito.

Importa un modulo dalla sottodirectory in Python usando __init__.py

Il file __init__.py viene utilizzato per dichiarare una directory come un pacchetto. Il file __init__.py impedisce a Python di mescolare la directory con lo stesso nome, quindi per distinguere tra una semplice directory e un pacchetto, viene utilizzato il file __init__.py.

Il file __init__.py può essere vuoto, oppure può contenere il codice necessario per inizializzare il pacchetto e una lista dei moduli che devono essere importati con il pacchetto; questo lista è rappresentato dalla variabile __all__.

Una volta che il file __init__.py è stato aggiunto alla sottodirectory, possiamo importare il file dalla sottodirectory come mostrato nel seguente codice di esempio:

import subdirectory.myfile

Importa un modulo dalla sottodirectory in Python usando il metodo sys.path.insert()

Il metodo alternativo per importare un file dalla sottodirectory consiste nell’aggiungere quella directory a PYTHONPATH. Il PYTHONPATH è la variabile d’ambiente che contiene il percorso delle directory che Python cerca per importare i pacchetti.

Pertanto, se aggiungiamo la sottodirectory a PYTHONPATH utilizzando il metodo sys.path.insert(), Python prima esaminerà le directory in PYTHONPATH e le importerà da lì.

Il metodo sys.path.insert() inserirà la sottodirectory nella variabile sys.path o PYTHONPATH che contiene l’lista delle directory che Python cercherà per importare il modulo richiesto.

Il codice di esempio seguente mostra come utilizzare il metodo sys.path.insert() per importare un file dalla sottodirectory:

import myfile
import sys

sys.path.insert(0, "./subdirectory")

Articolo correlato - Python Import