2013-04-02 82 views
4

我有一個在eclipse中打開的pydev項目。在Eclipse中導入相同名稱包時導入錯誤

該項目的包嵌套如下:

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

在eclipse中,檢查python路徑(import sys; sys.path)並檢查命令行中等效命令的結果是否存在差異(當virtualenv被激活時) – YardenST

回答

0

你從哪裏運行普通的Python? 如果你有

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

並從SRC根內運行常規的Python,那麼你將得到相同的結果,即,它不會工作,但如果你運行任何其他地方它像你說的可能會工作。

如果你不能重命名任何軟件包,唯一的辦法就是從eclipse的PyDev選項的'源文件夾'中刪除當前的scr-root,但不會意味着你再也不能訪問foo my-package 。 請參閱http://docs.python.org/2/library/sys.html#sys.path

相關問題