如何解决怪异的python ImportError不一致-可能是循环依赖吗?
| 我正在尝试重构一些python代码,并且遇到了我不理解的导入错误。我怀疑某个地方可能存在循环依赖关系,但我看不到它,并且从错误消息中获得的提示也没有太多帮助。代码库很大,但是这里有两个有趣的模块:radian/models.py
定义为ACount
的类
datalayer/radian.py
中包含以下行:
from radian.models import ACount
当我运行代码(以交互方式或从主程序运行)时,导入会以对我而言毫无意义的方式失败。
>>> from radian.models import ACount
>>> import datalayer.radian
Traceback (most recent call last):
File \"<console>\",line 1,in <module>
File \"/Users/leopd/dev/dbproj/datalayer/radian.py\",line 10,in <module>
from radian.models import ACount
ImportError: No module named models
我最好的猜测是某个地方存在循环依赖关系-radian
导入的东西会导入datalayer
。但是我看不到。错误消息对我来说没有任何意义。有什么想法吗?
-更新-
我在Mac上使用python 2.6.1。 __init__.py
文件中包含一些代码,但它们仅从标准python包中导入。
解决方法
datalayer
文件夹中的任何模块(包括ѭ9,)在看到from radian
时,都将假定datalayer/radian.py
是相关模块。您可能需要做
from __future__ import absolute_import
在datalayer/radian.py
和其他类似受影响的模块中,然后检查所有导入以确保它们是绝对的。您可能可以重命名datalayer/radian.py
以及引用它的导入,具体取决于引用该模块的位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。