Uso delle importazioni rispetto a Python ha uno svantaggio, non sarà in grado di eseguire i moduli come standalone più perché si otterrà un'eccezione: ValueError: Attempted relative import in non-package
Come utilizzare correttamente le importazioni relative o assolute nei moduli Python?
# /test.py: just a sample file importing foo module
import foo
...
# /foo/foo.py:
from . import bar
...
if __name__ == "__main__":
pass
# /foo/bar.py: a submodule of foo, used by foo.py
from . import foo
...
if __name__ == "__main__":
pass
Come devo modificare il codice di esempio in modo da essere in grado di eseguire tutti: test.py
, foo.py
e bar.py
Sto cercando una soluzione che funzioni con python 2.6+ (incluso 3.x).
Controllare questo thread: http://www.velocityreviews.com/forums/t502905-relative-import-broken.html –
Grazie, sfortunatamente, ero a conoscenza di questo thread precedente ma non ho trovato alcuna soluzione al problema. Finora ho visto solo molte persone lamentarsi di questo. Abbiamo bisogno di una chiara soluzione/esempio per questo problema. – sorin
Correlati: [Come sapere se lo script python è stato eseguito usando l'opzione -m dell'interprete?] (Http://stackoverflow.com/questions/8348726/) –