我正在研究一種公司內部有大量python依賴項的產品,該產品不允許服務器與外部機器聯繫。任何企圖規避這一規則的行爲都將受到嚴厲的判斷。在公司防火牆後面使用文件系統目錄而不是pypi?
該應用程序通過批處理腳本(它是32位窗口)部署到virtualenv中。此批處理腳本(理想)應該做的無非
# Precondition: Source code has been checked-out into myprog/src
cd myprog/src
setup.py install # <-- fails because of dependencies
myprog.exe
問題就來了與管理的依賴 - 因爲它是不可能的服務器連接到外面的世界我唯一的解決辦法是有劇本的easy_install各自的在開始安裝程序的依賴,這樣的事情:
cd myproc/deps/windows32
easy_install foo-1.2.3.egg
easy_install bar-2.3.4.egg
easy_install baz-3.4.5.egg <-- works but is annoying/wrong
cd ../../myprog/src
setup.py install
myprog.exe
我希望做的是讓這個在setup.py腳本知道在哪裏可以獲取它的依賴而來。理想情況下,這應該設置爲命令行參數或環境變量,這樣我不會將相關性的位置硬編碼到項目中。
理想情況下,我想讓所有的雞蛋都成爲'發行版'目錄的一部分:這可以在網絡驅動器上,在網絡服務器上共享,甚至可以部署到每個目錄上的本地文件夾服務器。
可以這樣做嗎?
您可以嘗試設置您自己的部分鏡像; [PyPI源代碼](https://bitbucket.org/pypa/pypi)可用。我沒有發佈這個答案,因爲我從未真正嘗試過。 –