导入相同名称包时导入Eclipse中的错误

时间:2013-04-02 15:46:05

标签: python eclipse import pydev

我在eclipse中打开了一个pydev项目。

项目的包嵌套如下:

my-package:
    my-sub-package:
        foo

在这个项目中,我正在使用我创建的另一个项目的导入。 另一个项目的嵌套是:

my-package:
    my-sub-package:
        bar

所以2个主包具有相同的名称。

尝试导入时: from my-package.my-sub-package import bar我得到ImportError: No module named bar

我想这是因为eclipse在当前项目中进行搜索,当它找不到bar时,它不会在dist-utils中找到它(我在那里pip安装了我正在尝试的项目从...导入。

(当尝试从同一位置打开的常规python执行相同的导入时,导入工作完全正常 - 所以这是eclipse中的东西。)

有没有办法告诉eclipse继续在pythonpath中的所有文件夹中搜索模块(因此它可以到达dist-utils),即使这些包具有相同的名称并且没有找到正确的包目前的项目?

非常感谢。

1 个答案:

答案 0 :(得分:0)

你从哪里开始正常运行常规python? 如果你有

src-root:
    my-package:
        __init__.py
        my-sub-package:
            __init__.py
            foo.py

然后你从src-root中运行常规python然后你会得到相同的结果,即它不会工作,但如果你在其他地方运行它可能会像你说的那样工作。

如果你不能重命名任何软件包,唯一的办法就是从eclipse PyDev选项中的'Source Folder'中删除当前的scr-root,但这并不意味着你再也不会访问foo my-package了。 见http://docs.python.org/2/library/sys.html#sys.path