Uso de las importaciones relativas en Python tiene un inconveniente, que no será capaz de ejecutar los módulos como Standalones más porque obtendrá una excepción: ValueError: Attempted relative import in non-package
¿Cómo usar adecuadamente las importaciones relativas o absolutas en los módulos de 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
Cómo debería modificar el código de la muestra con el fin de capaz de ejecutar todo: test.py
, foo.py
y bar.py
Estoy buscando una solución que funcione con Python 2.6+ (incluyendo 3.x).
Compruebe este hilo a cabo: http://www.velocityreviews.com/forums/t502905-relative-import-broken.html –
Gracias, lamentablemente, estaba al tanto de este hilo antiguo, pero no encontré solución al problema. Hasta ahora solo observé a mucha gente quejándose de esto. Necesitamos una solución/ejemplo claro para este problema. – sorin
Relacionado: [¿Cómo saber si el script de Python se ejecutó utilizando la opción -m del intérprete?] (Http://stackoverflow.com/questions/8348726/) –