Как заставить virtualenv устанавливать последние setuptools и pip из pypi?
Можно ли заставить virtualenv использовать последние setuptools и pip, доступные из pypi? По сути, я ищу напротив флага --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
[...]
Ответы
Ответ 1
Он не поддерживается по соображениям безопасности.
Использование virtualenv.py в качестве изолированного script (т.е. без ассоциированного virtualenv_support) больше не поддерживается для обеспечения безопасности причины и с ошибкой. Наряду с этим, -never-download теперь всегда привязана к True, и поддерживается только в Краткосрочная совместимость (Pull # 412).
Я не могу использовать параметр --extra-search-dir
либо потому, что он в настоящее время сломан https://github.com/pypa/virtualenv/issues/327
Похоже, единственный вариант - просто дождаться, когда поддерживающие virtualenv будут обновлять связанные пакеты?
Ответ 2
Вы можете обновить пипс после установки своего виртуального пользователя с помощью pip install -U pip
.
Я уверен, что вы можете написать bootstrap- script для автоматизации этого шага.
Ответ 3
Мне понадобилась последняя библиотека 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__'
показывает правильную версию.
Ответ 4
Основываясь на ematsen отличный ответ Я создал bash script, который работает с 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]
Ответ 5
Я столкнулся с той же проблемой, и я исправил ее, обновив setuptools
.
Если env
- ваш виртуальный env, запустите следующее:
$ env/bin/pip install --upgrade setuptools