18

是否可以强制 virtualenv 使用 pypi 提供的最新 setuptools 和 pip?本质上,我正在寻找旗帜的反面--never-download

目前,当我创建一个新的 virtualenv 时,它使用与 virtualenv 捆绑在一起的本地(旧)版本。

$ v.mk testvenv
New python executable in testvenv/bin/python
Installing setuptools............done.
Installing pip...............done.
$ pip show setuptools
---
Name: setuptools
Version: 0.6c11
Location: /Users/cwilson/.virtualenvs/testvenv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg
Requires: 
$ pip search setuptools
[...]
setuptools                - Easily download, build, install, upgrade, and
                            uninstall Python packages
INSTALLED: 0.6c11
LATEST:    0.7.2
[...]
4

5 回答 5

11

出于安全原因,它不受支持。

出于安全原因,不再支持将 virtualenv.py 用作隔离脚本(即没有关联的 virtualenv_support 目录),并且会因错误而失败。除此之外,--never-download 现在始终固定为 True,并且仅在短期内保持向后兼容性(Pull #412)。

我也不能使用该--extra-search-dir选项,因为它目前已损坏https://github.com/pypa/virtualenv/issues/327

看起来唯一的选择是简单地等待 virtualenv 维护者更新捆绑包?

于 2013-06-17T21:37:34.707 回答
9

您可以在安装 virtualenv 后使用pip install -U pip.

我相信您可以编写一个引导脚本来自动执行此步骤。

于 2013-07-05T18:40:22.237 回答
4

我需要最新的 setuptools 库,但该--extra-search-dir标志对我不起作用(即使它显然已修复)。

然而,在没有 setuptools 的情况下创建一个 virtualenv 然后直接从 PyPi 安装效果很好。例如,设置一个名为的 virtualenv test

virtualenv --no-setuptools test
source test/bin/activate
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
easy_install pip

测试

python -c 'import setuptools; print setuptools.__version__'

显示正确的版本。

于 2016-01-09T17:46:18.963 回答
2

我遇到了同样的问题,我通过升级解决了这个问题setuptools

如果env是您的虚拟环境,请运行以下命令:

$ env/bin/pip install --upgrade setuptools

于 2017-05-25T00:51:14.767 回答
0

基于 ematsen 的出色答案,我制作了一个与 virtualenvwrapper 一起使用的 bash 脚本

#!/bin/bash
source `which virtualenvwrapper.sh`
mkvirtualenv --no-setuptools $1
wget https://bootstrap.pypa.io/ez_setup.py -O - | python
rm setuptools-*.zip
easy_install pip

# for python version < 2.7.9
# https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
pip install urllib3[secure]
于 2016-11-13T04:16:03.423 回答