2011-03-02 60 views
11

有哪些工具或最佳實踐可用於跟蹤和管理正在開發的軟件的依賴關係?我使用的是Python/Django,迄今爲止我的所有軟件需求都是開源的。管理應用程序依賴關係的工具/最佳實踐?

我正在開發一個Web應用程序,儘管這個Web應用程序有一定的依賴關係。至少,我想跟蹤這些軟件和版本號。我想我還想跟蹤所需軟件的配置,以及可能的一些系統級別的內容(用戶標識,如果有的話,實例所需軟件的過程以及所需的權限)。

(更好的是,當我準備好部署時,可以幫助我爲應用程序設置服務器,更好的辦法是讓我跟蹤用於支持應用程序的http和dns名稱服務器應用程序,但有傳言說,木偶是那種事情的工具。)

回答

18

使用pipvirtualenv。通過virtualenv,您可以創建一個「虛擬環境」,將所有Python軟件包安裝到本地目錄中。使用pip install -r,可以安裝特定需求文件中列出的所有軟件包。

粗糙例如:

virtualenv /path/to/env --no-site-packages --unzip-setuptools # create virtual environment 
source /path/to/env/bin/activate # activate environment 
easy_install pip # install pip into environment 
source /path/to/env/bin/activate # reload to get access to pip 
pip install -r requirements.txt 

requirements.txt包含這樣幾行:

django==1.3 

關於這個偉大的事情是requirements.txt既充當文件和安裝過程的一部分,所以有不需要同步兩者。

+0

同意,一個更新:您可以使用setuptools創建自己的pip包,並且可以列出它們的依賴關係。如果你自己的代碼庫變得太大,你可以把它作爲相互依賴的獨立setuptools包構造。 – 2011-03-02 19:10:49

+1

如果某個或某些依賴項是您自己編寫的發行版,但不一定希望在PIP中發佈,該怎麼辦? – Santa 2011-03-02 19:30:18

+2

@Santa:您可以將URL提供給您自己的內部回購站,甚至可以將URL提供給服務器上的壓縮包。 – 2011-03-02 20:44:00