我需要建立一个实验室环境,观众可能不一定在场地有互联网连接。我需要向观众解释一些软件包。
我正在尝试使用virtualenv来做这一切。所以使用pip install我已经成功安装了virtualenv。在此之后我激活我的虚拟环境。然后在那里我再次使用pip install来安装其他所需的模块,比如请求等。
由于我的观众在培训期间可能没有互联网连接,我希望能够将他的virtualenv分发给他们,这样他们就拥有了一个完整的工作环境,他们可以开始使用培训的主要内容。
我不确定如何将我的virtualenv分发给其他人。根据我的理解,我可以做到
pip freeze> requirements.txt
然后
pip install -r requirements.txt
但是上面的后者也需要在virtualenv中完成才能工作。如果我错了,请纠正我。
所以我尝试编写一个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安装文件相同的目录中。
我甚至直接思考?我怎样才能做到这一点?答案 0 :(得分:0)
我非常确定您要做的是通过在计算机上运行Web服务器,使用要分发的软件包建立自己的简单存储库,然后将服务器作为存储库添加到参加活动的人员 - 允许他们使用如下命令访问本地网络上的存储库:
pip install --extra-index-url https://IP_ADDRESS_OF_YOUR_SERVER/ yourappname
This page有一个很好的指导如何设置这一切。