Estoy cambiando un montón de código python antiguo que ocasionalmente se ejecuta en colisiones de nombres entre paquetes. Tengo una pregunta sobre cuándo se deben usar las importaciones absolutas y si sería apropiado importar los módulos del mismo nivel solo por nombre.Cuándo utilizar importaciones absolutas
/package/
/package/__init__.py
/package/subA
/package/subA/__init__.py
/package/subA/moduleA.py
/package/subA/moduleB.py
/package/subB
/package/subB/__init__.py
/package/subB/moduleA.py
/package/subB/moduleB.py
Debería cada instrucción de importación dentro del paquete de aspecto:
import package.subX.moduleX
o
from package.subX import moduleX
¿Y en el subpaquete __init__.py
archivos. ¿Sería erróneo en pocas palabras
import moduleA
import moduleB
O, en /package/subA/moduleA.py, sería erróneo en pocas palabras:
import moduleB
siempre se puede alias, así que si quieres ahorrar algunos personajes a lo largo de su código, como en 'de package.subA moduleA importación como a_moduleA' y' de package.subB moduleA importación como b_moduleA', parece un poco desordenado para mí, pero es otra opción ... – photoionized
posible duplicado de [Importación relativa absoluta versus explícita del módulo de Python] (http://stackoverflow.com/questions/4209641/absolute-vs-expllicit-relative-import-of- python-module) – Stefano