Tengo un proyecto que se parece a esto:Python importación absoluta en el módulo falla
my_project/
__init__.py -- empty
run.py
datacheck/
__init__.py -- empty
datacheck.py -- containing class DataCheck(object)
config.py -- containing BusinessConfig(object)
business.py -- containing class BusinessCheck(DataCheck)
Mi PYTHONPATH
está configurado para tener/mi_proyecto en ella.
En run.py, tengo el siguiente código:
from datacheck.business import BusinessCheck
business = BusinessCheck()
business.check_data()
En business.py, tengo las siguientes importaciones que fallan:
from datacheck.config import BusinessConfig
from datacheck.datacheck import DataCheck
Un relativa de las importaciones como from .config import BusinessConfig
trabajos - sin embargo, He leído en numerosos hilos que se prefiere una importación absoluta.
hacer una prueba sencilla, también creé la siguiente:
myproject/
__init__.py -- empty
run_test.py
test/
__init__.py -- empty
test1.py -- containing class Test1(object)
test2.py -- containing class Test2(Test1)
importaciones run_test.py y se ejecuta la clase Test2
, esto no falló.
Me dejó un poco atónito, no entiendo por qué mis importaciones absolutas en la comprobación de datos no funcionan, ¿alguien puede explicarlo?
'from datacheck.business import Business' pero' business.py - que contiene la clase BusinessCheck (DataCheck) '... ¿Dónde está la clase' Business'? – eumiro
¿Tiene un archivo '__init __. Py' en' datacheck' también? Este archivo hace que el directorio sea un paquete y puede estar vacío. –
@eumiro: Lo siento, pequeño error, corríjalo. –