【问题标题】:python: How to create virtualenv without internet connectionpython:如何在没有互联网连接的情况下创建 virtualenv
【发布时间】:2016-01-21 16:45:37
【问题描述】:

我无法在阻止所有 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>

感谢您的帮助。

【问题讨论】:

  • 你使用的是哪个版本的 virtualenv?
  • 石器时代版本,1.7.2。

标签: python virtualenv


【解决方案1】:

如果您将 virtualenv 更新到 >= 1.10 的版本,那么无论任何标志如何,它都永远不会连接到互联网(请参阅“更改和新闻”部分 here


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

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

Here(“--extra-search-dir 选项”部分)解释了如何在没有互联网连接的情况下引导 setuptools 和 pip。你基本上需要获取这些包的.egg文件并将它们放在本地某个地方,然后你需要这样做:

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

【讨论】:

  • 这是一些进步,至少它创造了一些东西。但是如何在本地安装pip
  • 参见pypi.python.org/pypi/virtualenv/1.7.2 部分“--extra-search-dir 选项”...我也更新了答案
  • 听起来很有希望。有没有一种简单的方法来获取所有 .egg 文件?
  • 对于 setuptools,您可以使用您在错误日志中发布的 URL (pypi.python.org/packages/2.6/s/setuptools/…)
  • 我已经有了。我的意思是我也尝试安装的其他 python 包。
【解决方案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 文件。

【讨论】:

  • 我认为这不会有帮助。我什至无法走到这一步。我什至无法使用 activatepython 可执行文件创建 virtualenv。
猜你喜欢
  • 2019-02-06
  • 1970-01-01
  • 1970-01-01
  • 2023-03-09
  • 2016-01-17
  • 2018-01-31
  • 2017-08-25
  • 1970-01-01
  • 2015-05-24
相关资源
最近更新 更多