我在eclipse中打开了一个pydev项目。在
项目的包嵌套如下:
my-package:
my-sub-package:
foo
在这个项目中,我使用的是从我创建的另一个项目导入。 另一个项目的嵌套是:
^{pr2}$所以这两个主包有相同的名称。在
尝试导入时:
from my-package.my-sub-package import bar
我得到ImportError: No module named bar
。在
我想这是因为eclipse正在当前项目中搜索,当它没有找到bar
时,它不会在dist-utils中查找它(我pip安装了我试图从中导入的项目)。在
(当尝试从从同一个位置打开的常规python中执行相同的导入时,导入工作得非常好,因此这是eclipse中的一种功能)。在
有没有一种方法可以告诉eclipse继续在pythonpath中的所有文件夹中搜索模块(以便它可以访问dist-utils),即使这些包具有相同的名称,并且在当前项目中没有找到正确的包?在
非常感谢。在
你到底是从哪里运行常规python的? 如果你有
从src根中运行常规python,就会得到同样的结果,即它不能工作,但是如果你在其他地方运行它,它可能会像你说的那样工作。在
如果你不能重命名任何一个包,唯一的办法就是从eclipsepydev选项中的“Source Folder”中删除当前scr根目录,但这并不意味着你再也不能访问foo my包了。 见http://docs.python.org/2/library/sys.html#sys.path
相关问题 更多 >
编程相关推荐