2013-11-01 31 views
4

我下面的設立與Python來工作的指示在Mac (http://docs.python-guide.org/en/latest/starting/install/osx/是否有理由不檢查virtualenv環境以及python項目的源代碼?

這表明以存儲的virtualenv在項目目錄中創建虛擬環境......這當然是一個混帳回購協議。

是否有任何理由不是將virtualenv添加到git repo?這似乎是自然而然的事情,但...

+0

我相信virtualenvs通常依賴於絕對pathes。 – wmeyer

+0

它建議將virtualenv存儲在項目目錄中的位置?我沒有看到這樣的建議,這是一件好事,因爲即使是最beign解釋(在同一目錄中'.git'目錄中的virtualenv,但不檢查它)是更多的麻煩比它的價值。 – delnan

+0

這事實上是很難理解的句子,與結束「運行在項目的目錄中的virtualenv工具」。我現在可以看到,我可能誤解了這整個句子:(但是我從這個問題的答案中學到了很多東西:)但是,如果在項目目錄中運行此語句後的命令,則會結束與虛擬env在回購... – GreenAsJade

回答

7

總是嘗試檢查來源,而不是運行一個進程的結果。

virtualenv是相當具體的平臺; Windows virtualenv可能需要與Linux上創建的不同的二進制文件。腳本文件中的路徑幾乎肯定會使用絕對路徑,而不是相對路徑將virtualenv綁定到硬盤上的特定位置。

請改爲檢查如何重新創建virtualenv的說明。包括命令,並使用諸如pipzc.buildout之類的工具讓其他人爲其平臺重新創建合適的環境

pip允許您將軟件包安裝到帶有requirements.txt文件的virtualenv中。你會承諾文件。 zc.buildout可讓您在.cfg文件中定義複雜的構建配置。提交這些。

4

從哲學上講,virtualenv不是源代碼,它是一些可重現的工件。它不應該簽入,至多一個腳本,更容易重新創建它應該簽入。

實際上,即使在一個單一的系統內的virtualenv是完全不可移植的(不能移動它不破壞的東西) ,但是在不同的系統中使用相同的通用設置(二進制路徑和ABI可能不同),更不用說不同的操作系統了(我是否真的必須解釋這一點?)。因此,實際上檢查它在中幾乎在每種情況下都需要花費(因爲在克隆存儲庫後無法使用它)。

2

只需在requirements.txt文件中描述該項目的依賴關係,並將該版本與項目代碼等一起保存在git中。以後很容易重新創建環境:只需運行pip install -r requirements.txt即可。這是管理項目依賴關係的一種非常簡潔明瞭的方式。

一個理由不保持環境本身在回購是,它會顯著增加了回購的規模,它隨着時間的推移將與您的git回購慢(尤其是克隆它)的工作。

還有許多其他的原因,當然...

相關問題