2013-07-18 75 views
9

我的生產服務器無法訪問互聯網,所以將我的開發機器的所有依賴關係複製到生產/開發服務器上有點麻煩。使用virtualenv進行Python部署(在無互聯網訪問服務器上)

如果我使用virtualenv,我會在這個環境中擁有所有的依賴關係。這樣做,我也可以在任何安裝了python & virtualenv的機器上部署它。

但我很少看到這個,看起來很髒。 我錯了,這可能是一個很好的做法,或者有其他方法可以很好地解決嗎?

+0

'virtualenv'不允許您將依賴關係部署到其他機器。你可以考慮使用'fabric'(http://fabfile.org)或'bash'腳本來代替。 'virtualenv'非常適合隔離你的開發環境,例如以適應您的生產環境。 – furins

+0

您可以嘗試virtualenv提供的引導功能,請參閱此處的示例https://github.com/socialplanning/fassembler/blob/master/fassembler/create-venv-script.py – woozyking

回答

5

三種選擇,我會考慮:

  1. 運行你自己的PyPI mirror與所需要的依賴。你真的只需要編譯的文件格式,並使用index-url標誌從本地服務器拉:在相同的架構

    $ pip install --index-url http://pypi.beastcraft.net/ numpy

  2. 構建virtualenvs並根據需要複製這些了。

    這可以工作,但是您真正承擔着真正便攜性的風險。

  3. 使用terrarium來構建虛擬環境,然後將其納入(基本上是選項2,但更容易記帳/自動化)。

我已經完成了所有這些,實際上認爲託管自己的PyPI鏡像是最好的選擇。當您進行部署或嘗試新代碼時,它爲您提供了最大的靈活性。

+0

有一個缺點與其他兩個選項相比,託管您自己的鏡像。如果你有衝突/共享依賴關係,你需要在同一個盒子上託管,你需要/想要某種虛擬環境。 – cmd

相關問題