python: 如何在没有互联网连接的情况下创建 virtualenv

python: How to create virtualenv without internet connection

我无法在阻止所有互联网访问的服务器上创建 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>

感谢您的帮助。

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 的版本,那么无论任何标志如何,它都永远不会连接到互联网(参见 "Changes & News" 部分 here


互联网连接用于在虚拟环境中安装 setuptoolspip 软件包。较早版本的 virtualenv 会尝试下载这两个包,而较新版本会随附它们并在必要时解压缩它们。

由于您的 virtualenv 版本 (1.7.2) 低于 1.10,您可以使用 --never-download 标志以避免连接到互联网。稍后,您可以安装(离线)您需要的东西。

Here(第 "The --extra-search-dir Option" 节)解释了如何在没有互联网连接的情况下 bootstrap setuptools 和 pip。您基本上需要获取这些包的 .egg 文件并将它们放在本地某个地方,然后您需要做:

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