2012-01-20 42 views
1

最近我正在改變我們的內部Python模塊的部署。這些模塊僅供內部使用。我們以前的部署是將所有模塊放在某處(例如,/gozilla/pylib),並設置全局環境變量PYTHONPATH指向它。通過virtualenv將自制的python模塊部署到工作環境中是否是一個好主意?

我想知道是否爲這種部署使用virtualenv是一個好主意?或者一些其他的替代方法來做到這一點,尤其是使用setup.py機制,可能做自動單元測試,doc-gen,...?

更新

對於利用PYTHONPATH的,它工作得很好,只是我們要做我們自己的副本正膏部署並沒有對單元測試,doc-任何支持根,模塊的依賴......

爲利用的virtualenv的部署工具,其他(單機)Python腳本被要求通過源進入虛擬ENV模式...斌/激活或手動調用execfi le(activate_this,dict(_ 文件 _ = activate_this))在他們自己的腳本的開頭。是否可以通過execfile爲每個Python腳本防止這種手動進入virtualenv模式?

這就是我現在得到的;)我正在尋找其他建議的方式來做到這一點。

回答

3

是的,這是一個好主意,因爲你獲得了你已經提到的所有優點。

我可以推薦使用Paver(這使得setuptools體面得以擴展),並且還將諸如單元測試,Sphinx等等的東西集成到構建過程中。

關於venv的自動激活,如果您將「console_scripts」入口點添加到您的項目設置中,那麼setuptools將自動創建腳本存根,在任何支持的目標平臺上執行此操作。

然後,您可以編寫一個安裝程序腳本,該腳本使用預先構建的雞蛋在目標機器上創建virtualenv,或將整個venv打包到OS軟件包(例如.deb)中。還有一些工具可用於各個成熟階段。

*)http://paver.github.com/paver/

+0

仍試圖找出如何利用攤鋪機;) – Drake

相關問題