У меня есть проект, который выглядит так:
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)
Мой PYTHONPATH
настроен так, чтобы в нем был / my_project.
В run.py у меня есть следующий код:
from datacheck.business import BusinessCheck
business = BusinessCheck()
business.check_data()
В business.py у меня есть следующие ошибки импорта:
from datacheck.config import BusinessConfig
from datacheck.datacheck import DataCheck
Относительный импорт, например из .config import BusinessConfig
работает - однако я читал во многих темах, что предпочтительнее абсолютный импорт.
Чтобы выполнить простой тест, я также создал следующее:
myproject/
__init__.py -- empty
run_test.py
test/
__init__.py -- empty
test1.py -- containing class Test1(object)
test2.py -- containing class Test2(Test1)
run_test.py импортирует и запускает класс Test2
, это не сработало.
Это меня немного ошеломило, я не понимаю, почему мой абсолютный импорт в datacheck не работает - кто-нибудь может объяснить?