导入名称中包含“django”一词的包时的名称?

时间:2011-05-24 01:41:07

标签: python django import package name-clash

我有一个奇怪的问题。我决定从

重命名我的包的整个分支
foo.bar.somemodule

foo.django.bar.somemodule

问题是在完成此操作后,我收到以下错误:

Traceback (most recent call last):
  File "/home/workspace/eclipse/foo/src/foo/manage.py", line 2, in <module>
    from django.core.management import execute_manager
ImportError: No module named core.management

如果我现在,请将名称还原为

foo.djangox.bar.somemodule

IT工作!请注意,'x'我添加到单词django。

使用foo.django.bar.somemodule时似乎存在某种名称冲突,但是什么给出了?它们应该与django本身分开。

我的代码中的所有导入都是

形式
from foo.django.bar.somemodule import someobject
import foo.django.bar.somemodule

编辑:澄清在倒数第二次导入中有一个'x'

1 个答案:

答案 0 :(得分:1)

您遇到了要执行absolute import的情况,但默认情况下您的Python版本不会执行这些操作。在受影响的文件顶部添加from __future__ import absolute_import,告诉Python VM激活它。