Sto tentando di importare un modulo (venues
) da una shell IPython. Il modulo venues
viene importato correttamente ma si tenta quindi di importare un modulo denominato makesoup
e non riesce a farlo.Python 3: modulo nella stessa directory dello script: "ImportError: nessun modulo denominato"
Sono nella directory ~
e sto tentando di importare il file venues.py
nella sottodirectory processors
. Il file makesoup.py
si trova anche nella sottodirectory processors
, il che significa che qualsiasi script Python vicino dovrebbe essere in grado di trovarlo, giusto?
In [1]: import processors.venues
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-765135ed9288> in <module>()
----> 1 import processors.venues
~/processors/venues.py in <module>()
7 """
8
----> 9 import makesoup
10 import re
11
ImportError: No module named 'makesoup'
Ho aggiunto un vuoto __init__.py
in sia le ~
e processors
directory, senza successo.
Nota: il modulo makesoup
viene importato correttamente quando si trova in processors
ma so che questo non è l'unico modo in cui dovrebbe funzionare.
Grazie Kevin. Tuttavia, non capisco perché queste soluzioni renderebbero impossibile eseguire 'venues.py'direttamente. Puoi dirmi perché? –
Se si utilizza un'importazione relativa esplicita (la prima opzione che ho elencato), la variabile magica '__package__' deve essere impostata, ma' python' non lo farà quando si esegue uno script direttamente senza '-m'. Se si utilizza un'importazione assoluta, Python probabilmente non sarà in grado di trovare il pacchetto 'processors', poiché non si trova nella stessa directory dello script. Ancora, '-m' risolverà questo problema. – Kevin