我有一个项目,它看起来像这样:模块Python的绝对导入失败
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
的相对进口喜欢from .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
类,这并没有失败。
这让我有些fla然心动,我不明白为什么我的数据库绝对导入不起作用 - 任何人都可以解释吗?
'from datacheck.business import Business'but'business.py - contains class BusinessCheck(DataCheck)'...'Business'类在哪里? – eumiro
你在'datacheck'中是否有'__init __。py'文件?该文件使目录成为一个包,并且可以为空。 –
@eumiro:对不起,有点小错 - 改正它。 –