如何强制virtualenv从pypi安装最新的setuptools和pip?

时间:2013-06-17 21:07:57

标签: python virtualenv pip setuptools virtualenvwrapper

是否可以强制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
[...]

5 个答案:

答案 0 :(得分:12)

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

  

使用virtualenv.py作为独立脚本(即没有关联的脚本)   virtualenv_support目录)不再受安全支持   原因并将失败并出现错误。除此之外, - 来下载   现在总是被固定为True,并且只被维持在   向后兼容的短期(Pull#412)。

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

看起来唯一的选择就是等待virtualenv维护者更新捆绑的软件包?

答案 1 :(得分:8)

您可以使用pip install -U pip安装virtualenv后升级pip。

我确信你可以写一个bootstrap-script来自动完成这一步。

答案 2 :(得分:4)

我需要最新的setuptools库,而--extra-search-dir标志对我来说并不起作用(即使它已经被修复了)。

但是,在没有setuptools的情况下制作virtualenv,然后直接从PyPi安装,效果很好。 例如。建立一个名为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__'

显示正确的版本。

答案 3 :(得分:2)

我遇到了同样的问题,我通过升级setuptools修复了它。

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

$ env/bin/pip install --upgrade setuptools

答案 4 :(得分:0)

在ematsen excellent answer的基础上构建了一个与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]