2013-06-17 3 views
17

Можно ли заставить virtualenv использовать последние setuptools и pip, доступные из pypi? По сути, я ищу --never-download флаг.Как заставить virtualenv устанавливать последние setuptools и pip из pypi?

В настоящее время, когда я создаю новый 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 
[...] 

ответ

11

Это не поддерживается по соображениям безопасности. не

Использование virtualenv.py в качестве изолированного сценария (т.е. без ассоциированного каталога virtualenv_support) больше не поддерживается для безопасности причин и потерпит неудачу с ошибкой. Наряду с этим, --never-download теперь всегда привязана к True и поддерживается только в краткосрочной перспективе для обратной совместимости (Pull # 412).

я не могу использовать опцию --extra-search-dir либо потому, что в настоящее время сломана https://github.com/pypa/virtualenv/issues/327

Похоже, единственный вариант, чтобы просто подождать, пока virtualenv Сопровождающие обновить пакеты в комплекте?

8

Вы можете обновить пипс после установки виртуального пользователя с помощью pip install -U pip.

Я уверен, что вы можете написать сценарий начальной загрузки, чтобы автоматизировать этот шаг.

2

Мне нужна была последняя библиотека setuptools, и флаг --extra-search-dir не работал для меня (хотя он был исправлен, по-видимому).

Однако создание virtualenv без setuptools, а затем установка непосредственно из 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__' 

показывает правильную версию.

+0

очень хорошее решение! – pymarco

0

Опираясь на ematsen-х excellent answer я сделал Баш скрипт, который работает с virtualenvwrapper

#!/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] 
0

Я столкнулся с той же проблемой, и я установил его модернизации setuptools.

Если env является виртуальным окр, выполните следующие действия:

$ env/bin/pip install --upgrade setuptools

Смежные вопросы