安装没有互联网连接的Virtualenv

时间:2015-11-06 23:34:47

标签: python-2.7 pip virtualenv setup.py

我需要建立一个实验室环境,观众可能不一定在场地有互联网连接。我需要向观众解释一些软件包。

我正在尝试使用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安装文件相同的目录中。

我甚至直接思考?我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我非常确定您要做的是通过在计算机上运行Web服务器,使用要分发的软件包建立自己的简单存储库,然后将服务器作为存储库添加到参加活动的人员 - 允许他们使用如下命令访问本地网络上的存储库:

pip install --extra-index-url https://IP_ADDRESS_OF_YOUR_SERVER/ yourappname

This page有一个很好的指导如何设置这一切。