2016-06-30 10 views
5

私はtoxを使っていくつかのテスト環境を管理しています。最新バージョンのpipを使用してダウンロードできない依存関係(backports.ssl-match-hostname)があるので、インストールを可能にするためにpip 8.0.3に戻す必要があります。Toxは仮想環境にpipの間違ったバージョンをインストールします

依存性のために私のtox.iniファイル内にpipの8.0.3バージョンを含めました。私は

source .tox/py27/bin/activate 

を実行し、仮想テスト環境を入力し、[

pip --version 

を実行したときに、私は外に、しかし

8.1.2 

で終わるしかし

deps= 
    pip==8.0.3 

、私の毒性環境の中で、私が同じコマンドを実行すると、私は得る

8.0.3 

ピップをつかむときにtoxが特別なことはありますか?依存関係として使用したいpipのバージョンを指定できないのはなぜですか?

EDIT:これに追加すると、依存関係pip == 8.0.3を取得できるように見えますが、その他の依存関係については、pip == 8.1.2で起動したコマンドから実行しています。

だから、最初にpip == 8.0.3を取得してから、一度インストールすれば、それ以外のものはすべて取得する必要があります。まだtoxがpip == 8.1.2から始まっているのはまだ分かりません。

答えて

3

これは明らかに、あらかじめ選択されたpythonパッケージのグループを含んでいる "virtualenvs" pythonパッケージの結果でした。最高のピップ。

これは、これを行うための好ましい方法である場合、私は知らないが、私は

pip uninstall virtualenv 

を実行し、次いで

pip install virtualenv==15.0.1 

を働いたバージョンで再インストールすることで成功を収めました」正しいバージョンのvirtualenvを実行して、私のtoxコマンドを実行することができました。

source .tox/py27/bin/activate 

ピップ

pip --version 
pip 8.0.3 
+1

pipがvirtualenv_supportパッケージにバンドルされているため、既存のvirtualenvをアンインストールすることが重要であることがわかりました。これは、virtualenvのアップデートで更新されていません。 –

1

これを回避するの産まバージョンはここにある:それは私が書かなければならなかった動作させるためにがhttps://github.com/pypa/pip/issues/3666

私のスクリプトに「ピップ== 8.1.1をインストールPIP」。要約するので:

プロジェクトにpip.shスクリプトを追加します。

#!/bin/bash 
pip install pip==8.1.1 
pip install "[email protected]" 

は、あなたのTOXに追加します。ini:

install_command = {toxinidir}/pip.sh {opts} {packages} 
0

最近この問題が発生しました。私はしばらくそれを持っていましたが、Python 2/3コードでこのような不具合が頻繁に発生したため登録できませんでした。これが起こる別の方法は、私のように、異なるPythonバージョン間でvirtualenvを変更してクリーンアップしない場合です。

python2pythonを指しているかどうかを確認するには、/binまたは/Scriptsを確認してください。 virtualenvがPython 3ならば、これはpython2が実際にPython 3を呼び出すことを意味します。逆に、virtualenvがPython 2でPython 3のコードをテストしたい場合はもちろんです。

+0

応答ありがとうございます。私は正直にこれを覚えていない、それはずっと長い。 – Zack

関連する問題