2013-07-12 52 views
3

我現在正在自己工作,但正在尋找擴展我的操作的方法。有沒有辦法「版本」我的Python分佈?

我想找到一個簡單的方法來對我的Python發行版進行版本化,以便我可以非常輕鬆地重新創建它。有沒有一種工具可以做到這一點?或者我可以添加/usr/local/lib/python2.7/site-packages/(或其他)到svn回購?這並不能解決PATH的問題,但我總是可以編寫腳本來改變路徑。理想情況下,解決方案是在VM中構建我的Python env,然後將VM的副本移出。

其他人怎麼解決這個問題?

+0

爲什麼要使用版本控制安裝的庫?備份,當然,但版本控制? – delnan

+0

也許「版本」是錯誤的詞。但最終目標是要有一個可移植的Python實例,我可以給一位同事,並且他們可以安裝很少,所以他們可以快速啓動並運行。 – BenDundee

回答

5

virtualenv + requirements.txt是你的朋友。

您可以爲您的項目創建多個虛擬python安裝,一切都包含您需要的庫版本(提示:pip freeze吐出具有確切庫版本的requirements.txt)。

在這裏找到很好的參考virtualenv:http://simononsoftware.com/virtualenv-tutorial/(它來自這個問題Comprehensive beginner's virtualenv tutorial?)。

或者,如果您只是想將代碼與庫一起分發,PyInstaller值得一試。您可以將所有內容打包在一個靜態可執行文件中 - 之後您甚至不必安裝軟件。

+0

那麼,目標是有一個其他開發人員可以使用的環境,所以我不確定我需要PyInstaller。我會檢查vitualenv - 我聽說過它,但從來沒有真正仔細調查過。 – BenDundee

+0

在我看來,如果你在一個團隊中開發python,沒有辦法繞過virtualenv。當涉及到部署(僅舉幾個例子:Heroku,Engine Yard,...)時,一切都是關於重新創建一個python庫狀態。 我已經添加了PyInstaller註釋,因爲您的評論是「安裝+啓動並快速運行」。 – Gregor

5

您想使用virtualenv。它可以讓你爲安裝的軟件包創建一個應用程序的特定目錄。您還可以使用pip生成和構建requirements.txt

0

爲了同一個目標,即具有完全相同的Python發佈的我的同事,我試圖創建一個網絡驅動器的虛擬環境,使我們的每個人都將是能夠使用它,沒有任何人制作他的本地副本。 這個想法是共享安裝在共享文件夾中的相同軟件包。 結果:Python運行速度太慢,無法使用。另外安裝一個軟件包非常非常緩慢。

所以看起來除了使用virtualenv和需求文件之外沒有別的辦法。 (即使不幸的是,它經常不能在Windows上順利運行,並且需要手動安裝某些軟件包和依賴項,至少在撰寫此文時)。

相關問題