Virtualenvにpypiから入手可能な最新のsetuptoolsとpipを使用させることは可能ですか?基本的に、私は--never-download
フラグのoppositeを探しています。
現在、新しい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
[...]
セキュリティ上の理由からサポートされていません。
Virtualenv.pyを分離されたスクリプトとして使用する(つまり、virtualenv_supportディレクトリが関連付けられていない)ことは、セキュリティ上の理由からサポートされなくなり、エラーで失敗します。これに加えて、-never-downloadは常にTrueに固定され、下位互換性のために短期的にのみ維持されます(プル#412)。
--extra-search-dir
オプションは現在壊れているため、使用できません https://github.com/pypa/virtualenv/issues/327
唯一のオプションは、virtualenvメンテナがバンドルされたパッケージを更新するのを単に待つことであるように見えますか?
pip install -U pip
を使用して、virtualenvをインストールした後にpipをアップグレードできます。
このステップを自動化するためのブートストラップスクリプトを作成できると確信しています。
最新のsetuptoolsライブラリが必要でしたが、--extra-search-dir
フラグが機能していませんでした(明らかに修正されていますが)。
ただし、setuptoolsを使用せずにvirtualenvを作成し、PyPiから直接インストールすることはうまくいきました。例えば。 test
というvirtualenvを設定するには:
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__'
は正しいバージョンを示しています。
同じ問題が発生し、setuptools
をアップグレードして修正しました。
env
が仮想環境の場合は、以下を実行します。
$ env/bin/pip install --upgrade setuptools
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]