首先讓我解釋一下目前的情況:HOWTO部署Python應用程序
我們確實有幾個依賴於自定義(不公開發布的)python
應用以及一般稱爲包。這些依賴性都安裝在system python
安裝上。應用程序的分發通過源碼通過git
完成。所有這些計算機都隱藏在公司網絡中,並且無法訪問互聯網。
這種方法的屁股有些痛,因爲它具有以下缺點:
- 利布斯必須手動安裝在每臺計算機上:(
如何更好地部署應用程序我最近看到virtualenv
這似乎是解決方案,但我還沒有看到它。
virtualenv
爲我的應用程序創建一個乾淨的python instance
。這樣軟件的使用者可以輕鬆啓動它嗎?
應用程序中是否應該有一個啓動腳本,在啓動期間創建virtualenv
?
接下來的問題是電腦沒有互聯網接入。我知道我可以指定一個包(網絡共享?)的自定義位置,但這是正確的方法嗎?或者我是否也應該部署壓縮包?
另一種方法是運送整個python實例嗎?所以用戶不必啓動virutalenv
?在這個python實例中,所有必需的軟件包將被預先安裝。
由於我們的應用快速增長,我們有一個快速發佈週期(2周)。通過git
進行部署非常容易。用戶可以通過更新腳本從stable
分支獲取最新版本 - 是否仍然有可能或有更好的方法?
我知道有很多問題。希望有人能回答我並給我一些建議。
這是兩個獨立的問題,不是嗎? (A)客戶端(或中央服務器)如何確定何時升級一個或多個應用程序? (B)如何打包和交付應用程序。對於(A)也許你可以改寫一下,使你的客戶端/服務器或作者/用戶模型看起來更清晰。你的意思是「沒有互聯網接入」?這與問題有關嗎?如果更新服務器和所有客戶端計算機都位於網絡中,則它們具有所需的全部可見性,是嗎? – cfi