我需要建立一個實驗室環境中,觀衆可能不一定在會場有互聯網連接安裝VIRTUALENV。我只需向觀衆解釋一些軟件包。沒有互聯網連接
我試圖使用的virtualenv做這一切。所以使用pip install我已經成功地安裝了virtualenv。在此之後,我激活了我的虛擬環境。然後在那裏我再次使用pip install來安裝其他需要的模塊,如請求等。
現在,由於我的受衆在培訓期間可能沒有互聯網連接,我希望能夠將他們的virtualenv分發給他們,以便他們有一個完整的工作環境,他們可以開始使用培訓的主要內容。
我不知道怎麼我的virtualenv分發給其他人。據我瞭解,我可以做
PIP凍結> requirements.txt
然後
PIP安裝-r requirements.txt
但後者上面的內容也需要在虛擬環境中完成。如果我錯了,請糾正我。
於是,我試着寫一個Python腳本,將自動完成所有的這些東西,給互聯網連接問題,在我的自動化腳本我不能使用PIP install來安裝的virtualenv。因此我使用setup.py來安裝virtualenv。
下面是我的腳本嘗試(不工作)
import os
import shutil
import sys
from os.path import expanduser
from os.path import join
home = expanduser("~")
newpath = join(home,"newFolder")
print newpath
if not os.path.exists(newpath):
os.makedirs(newpath)
cwd = os.path.dirname(os.path.abspath(__file__))
print cwd
#virtenv = join(cwd,'virtualenv-13.1.2')
#print virtenv
setupFile = join(cwd,'setup.py')
string = sys.executable + " " + setupFile + " install"
print string
os.system(string)
# isntalling dependencies
string = "pip install -r requirements.txt"
os.system(string)
的想法是 - 當用戶運行上面的腳本(沒有任何互聯網),應該有一個virtualenv中的設置他的主目錄下的新文件夾。然後在該虛擬環境中,該腳本應該運行pip install -r requirements.txt來安裝所有必需的模塊。
到目前爲止,上面的腳本沒有做什麼需要。我已經將上述腳本放在與virtualenv安裝文件相同的目錄中。
上午我甚至在想直?我怎樣才能做到這一點?
是的,這是正確的。但是除了上述以外,還有其他的方法嗎......有點在我試圖進行的方向上? – qre0ct
是的,設置你的本地存儲庫,使其包含你需要的所有包,包括virtualenv和'pip freeze> requirements.txt'的輸出。然後用'pip install --extra-index-url https:// YOUR_SERVER /'爲你的項目的virtualenv和需求創建一個shell腳本。在shell腳本中運行(相對)簡單的命令幾乎總是比在過於複雜的python腳本中運行(相對)簡單的命令更容易,但是您還可以將指定簡單存儲庫位置的標誌附加到python腳本中的命令中。 –
另一個問題是,我上面的方法有什麼問題?無法使用setup.py來代替pip來安裝virtualenv? – qre0ct