2011-07-03 20 views
1

我正在編寫一個小應用程序包。它使用可移植的Python進行分發,因此代碼無法訪問Windows設置。獨立程序中的Python路徑/導入

該方案具有這樣的結構:

mypr 
    __init__.py 
    gui 
     __init.__.py 
    prlib 
     __init__.py 

我試圖做到這一點from mypr.gui import Guiprlib但是,當然,沒有定義mypr。我可以將它添加到贏得路徑,編輯pth文件或追加sys.path與當前目錄,但:這將是一個可移植的應用程序和目錄將改變。

那麼,我怎麼能確定Python在開發和部署期間的路徑中始終有mypr?無需更改* .pth或編輯Windows PATH。在運行時鏈接mypr是否存在一些合理的黑客攻擊?

或者,是否可以導入一個「相對」的包?我試過from .gui import Gui,但沒有運氣。

回答

2

如果你只是希望能夠訪問「鬼」模塊在上面的「prlib」的目錄,你可以做到這一點通過:

import os 
import sys 
sys.path.append(os.path.join(os.dirname(__file__), '../')) 

那麼你應該能夠通過導入「鬼」:

from gui import Gui