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