带有前导点的Python导入不再被识别从django中的py3到py2

时间:2015-03-26 16:54:32

标签: python django python-2.7 python-import

我已将使用python3处理过的项目复制到只有python2的工作站。 Python现在抱怨我的一个导入。

该行是

from .mage.models import ButtLoadOfClasses

错误却说

ImportError: No module named mage.models

我的项目树看起来像这样:

nwod-db-master/
    characters
         mage
             models.py
         admin.py

导入位于admin.py。

所以我认为它会切断点,然后将其视为绝对导入 - mage.models不在我的路径上,所以它是barfs。

我已经搜索了这个,我能找到的最相关的东西是What's wrong with relative imports in Python?,这更多是关于编码风格,并没有引导我找到解决方案 - 除了它引导我相信相对进口只是python3的事情。我也看到了这个:Python/Django is importing the wrong module (relative when it should be absolute)但是这是模板标签。我还没有在接受的答案中诉诸于hackery,因为我希望事情在过去的4年里继续发展。

如何强制python将其导入为包的绝对引用?

1 个答案:

答案 0 :(得分:2)

好像你没有在mage /中包含__init__.py文件,所以它不会被识别为包。

只需在mage /

下添加__init__.py文件即可
nwod-db-master/
    characters/
         mage/
             __init__.py
             models.py
         admin.py