Python:如何在无网络连接的情况下创建virtualenv

2024-05-13 18:54:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我很难在服务器上创建一个阻止所有internet访问的virtualenv。以前有人成功过吗?我搜索了一下,但没有发现任何有用的东西。我可以来回传输数据,但我不知道需要下载哪些包,以及安装时需要哪些选项。

如果你想知道我是怎么创造出来的,这里有个回溯:

netops@netops1 /spare/local/latency $virtualenv -p /usr/bin/python2.6 latency
Running virtualenv with interpreter /usr/bin/python2.6
New python executable in latency/bin/python2.6
Also creating executable in latency/bin/python
Installing setuptools.....................
  Complete output from command /spare/local/latency/latency/bin/python2.6 -c "#!python
\"\"\"Bootstra...sys.argv[1:])






" --always-copy -U setuptools:
  Downloading http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg
Traceback (most recent call last):
  File "<string>", line 279, in <module>
  File "<string>", line 211, in main
  File "<string>", line 159, in download_setuptools
  File "/usr/lib64/python2.6/urllib2.py", line 126, in urlopen
    return _opener.open(url, data, timeout)
  File "/usr/lib64/python2.6/urllib2.py", line 391, in open
    response = self._open(req, data)
  File "/usr/lib64/python2.6/urllib2.py", line 409, in _open
    '_open', req)
  File "/usr/lib64/python2.6/urllib2.py", line 369, in _call_chain
    result = func(*args)
  File "/usr/lib64/python2.6/urllib2.py", line 1181, in http_open
    return self.do_open(httplib.HTTPConnection, req)
  File "/usr/lib64/python2.6/urllib2.py", line 1156, in do_open
    raise URLError(err)
urllib2.URLError: <urlopen error [Errno 110] Connection timed out>

谢谢你的帮助。


Tags: inpystringbinvirtualenvusrlinespare
2条回答
mkdir .mypypi  
pip install --download $HOME/.mypypi ipython ipdb django  

现在将内容从.mypypi传输到服务器。假设您将其复制到了您的$HOME中,然后执行以下操作:

pip install --no-index --find-links=file:/$HOME/.mypypi ipython

这也适用于requirements.txt文件。

如果您将virtualenv更新到>;=1.10版本,则它将永远无法连接到internet,而不考虑任何标志(请参阅“更改和新闻”部分here


internet连接用于在虚拟环境中安装setuptoolspip包。旧版本的virtualenv会尝试下载这两个包,而新版本会随附,并在必要时将其解包。

由于您的virtualenv版本(1.7.2)低于1.10,您可以使用--never-download标志以避免连接到internet。稍后,您可以安装(脱机)所需的内容。

Here(部分--extra search dir选项)解释了如何在没有internet连接的情况下引导setuptools和pip。基本上,您需要获取这些包的.egg文件并将它们放在本地某个地方,然后您需要执行以下操作:

$ virtualenv --extra-search-dir=/path/to/eggs --never-download ENV

相关问题 更多 >