没有互联网连接

没有互联网连接

问题描述:

我需要建立一个实验室环境中,观众可能不一定在会场有互联网连接安装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安装文件相同的目录中。

上午我甚至在想直?我怎样才能做到这一点?

我很确定你想要做的是通过在你的计算机上运行一个Web服务器来建立你自己的简单的存储库,然后把你的服务器作为一个存储库添加到参加你的人事件 - 允许他们访问使用如下命令在本地网络上你的资料库:

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

This page对如何设置,所有一个不错的指南。

+0

是的,这是正确的。但是除了上述以外,还有其他的方法吗......有点在我试图进行的方向上? – qre0ct

+1

是的,设置你的本地存储库,使其包含你需要的所有包,包括virtualenv和'pip freeze> requirements.txt'的输出。然后用'pip install --extra-index-url https:// YOUR_SERVER /'为你的项目的virtualenv和需求创建一个shell脚本。在shell脚本中运行(相对)简单的命令几乎总是比在过于复杂的python脚本中运行(相对)简单的命令更容易,但是您还可以将指定简单存储库位置的标志附加到python脚本中的命令中。 –

+0

另一个问题是,我上面的方法有什么问题?无法使用setup.py来代替pip来安装virtualenv? – qre0ct