背景资料
- 服务器和本地的 Python 2.7.1 (r271:86832)
- 使用所有依赖项相同的 virtualenv
- 本地 Python 是 64 位的
- 服务器 Python 是 32 位的
- 使用 Django
实际问题
我们在服务器上遇到了一个循环导入问题,在任何测试期间都没有发现。
做一个简单的循环导入示例表明循环导入确实在本地出错。
我们在每个文件导入时在其顶部粘贴了一些打印件。
本地行为:
priority.__init__.py
sync.tasks.keywords.py
priority.reasons.py
priority.__init__.py (<- circular import but it works??)
priority.reasons.py
服务器行为:
priority.__init__.py
sync.tasks.keywords.py
priority.__init__.py (<- circular import but it works??)
Traceback (most recent call last):
...
from sync.tasks.keywords import check_keywords
ImportError: cannot import name check_keywords
我完全感到困惑。代码完全相同。导入链在出错之前也略有不同,这让我倍感困惑。
所以......关于从哪里开始寻找的任何提示?