2011-11-06 217 views
0

我有兩個具有相同名稱的不同包,每個包都有一組相同名稱的模塊和類,但它們的實現方式不同。建立我的軟件包/模塊結構最合乎邏輯的方式是什麼?具有相同名稱的多個模塊的Python項目

現在我做這樣的事情:

Common 
    utilities.py 
    VersionA 
     Package 
     moduleX.py 
     moduleY.py 
    VersionB 
     Package 
     moduleX.py 
     moduleY.py 

我要求,其中正在使用的模塊的環境中,只需設置路徑指向「包」的正確版本。

在它的上面,有兩個包共享一個模塊! 「Utilities.py」。現在我還要求安裝程序將Utilties.py添加到路徑中。

這是令人困惑的,感覺就像一個黑客。但是,我找不到一個更好的方法來做到這一點。

+0

你有沒有考慮過使用[virtualenv](http://www.virtualenv.org/en/latest/index.html)? – Nate

回答

3

定義,您將用它來選擇版本(VersionA,VersionB)全球可訪問的環境變量。然後,在Common/__init__.py地說:

import whenver_you_put_your_env as envloc 

if (envloc.env == VersionA) 
    import VersionA.Package as Package 
elif (envloc.env == VersionB) 
    import VersionB.Package as Package 

現在,只要你想在文件中使用的包裝,你應該能夠做到:

import Common.Package 

,你是好去。

+0

甜,謝謝! – cdiggins

相關問題