2012-06-15 18 views
0

我有以下項目結構:Python的完整路徑進口不跨越分支工作在包樹

Project 
    - GUI 
    - ...Modules 
    - Data 
    - Database 
     - ...Modules 
    - Files 
     - ...Modules 
    - Utilities 
    - ...Modules 

,我試圖做了包邊界部分進口,例如:

文件中(Module)Project.Database.dbdriver我嘗試導入Project.Utilities.Conversions。如果我使用像import Project.Utilities.Conversions這樣的完全指定的導入,則此操作失敗,它將與import Utilities.Conversions一起使用,即我不能指定比那些不同的部分更多的路徑。但是我想使用完全指定的路徑,原因在於Eclipse中的pydev更喜歡它們(否則它會顯示錯誤),另一個原因是我發現它不會這樣做。

我無意中發現了這一點,但認爲這是錯誤/這裏不需要How do I create a namespace package in Python?

問題:我怎麼能使用完全指定的包括在封裝結構渡支行什麼時候?

回答

1

完全指定的導入失敗,因爲python(或jython)的當前工作目錄被設置爲Project。您可以:

添加項目的父目錄到Python的lib

import sys 
sys.path.append('/parent/of/project') 

或者只是改變的Jython的工作目錄項目的調試設置父(我不知道怎麼樣。這樣做是因爲我不使用pydev。)

+0

問題不在於pydev,而在於我運行該項目的shell。 (在eclipse之外)。謝謝。 – ted

+0

雖然你的建議解決了我在開發它的應用程序中的問題,它在pydev中創建了一個問題,'import project.GUI as gui'得到 'ImportError:No module named GUI',yes是__init __。py'和是的,項目父文件夾顯示出來,當我'打印sys.path',就在錯誤之前。但我會把它放在別的地方,你解決了最初的問題 – ted