Ecco la struttura di directory:Come posso importare uno script Python da una directory di pari livello?
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
Come faccio a importare bar.py in foo.py?
Ecco la struttura di directory:Come posso importare uno script Python da una directory di pari livello?
parent_dir/
foo_dir/
foo.py
bar_dir/
bar.py
Come faccio a importare bar.py in foo.py?
Se tutte le directory che si verificano sono Python pacchetti, vale a dire che tutti contengono __init__.py
, quindi è possibile utilizzare
from ..bar_dir import bar
Se le directory non sono pacchetti Python, è possibile farlo da fare in giro con sys.path
, ma non dovresti.
questo non funzionerà se si desidera importare in un pacchetto e non hai appena eseguito un pitone da un fratello. In questo caso sys.path.append è la strada da percorrere – mhstnsc
@mhstnsc Direi che in questo caso hai fatto qualcosa di sbagliato, ma se si tratta solo di uno script hacky potrebbe andare bene con 'sys.path'. –
Non è sbagliato ma quando si esegue il modulo principale non è possibile effettuare importazioni relative. https://www.python.org/dev/peps/pep-0366/ – mhstnsc
È possibile utilizzare i moduli sys
e os
per le importazioni generalizzate. In foo.py
inizio con le linee
import sys
import os
sys.path.append(os.path.abspath('../bar_dir'))
import bar
See: https://stackoverflow.com/questions/6323860/sibling-package-imports/27878845#27878845 –