2016-06-30 3 views
5

일부 테스트 환경을 관리하기 위해 tox을 사용하고 있습니다. 최신 버전의 pip를 사용하여 다운로드 할 수없는 종속성 (backports.ssl-match-hostname)이 있으므로 설치를 허용하려면 pip 8.0.3으로 되돌려 야합니다.Tox가 가상 환경에 잘못된 버전의 pip를 설치합니다.

필자의 tox.ini 파일에 8.0.3 버전의 pip를 포함 시켰습니다. 외부 내가

source .tox/py27/bin/activate 

를 실행하고 가상 테스트 환경을 입력 한 다음 내가 그러나

8.1.2 

로 끝날

pip --version 

실행 그러나

deps= 
    pip==8.0.3 

, 내 유독 한 환경에서 동일한 명령을 실행하면 얻을 수 있습니다.

8.0.3 

핍을 잡을 때 tox가 특별히하는 것이 있습니까? 종속성으로 사용하려는 pip의 버전을 지정할 수없는 이유는 무엇입니까?

편집 : 추가하려면 의존성 pip == 8.0.3을 사용할 수있는 것처럼 보이지만 다른 종속성의 경우에는 여전히 pip == 8.1.2로 시작되는 명령에서 실행 중입니다.

그래서 필자는 pip == 8.0.3을 먼저 잡을 수 있어야하고, 일단 설치되면 다른 모든 것을 잡을 수 있어야합니다. 여전히 tox가 pip로 시작하는 이유는 확실하지 않습니다. 8.1.2

답변

3

이것은 "virtualenvs"python 패키지의 결과로서, 미리 선택된 Python 패키지 그룹을 포함하고 있습니다. 그 중 하나는 최신 및 가장 큰 핍.

이이 일을 선호하는 방법 인 경우 나도 몰라,하지만 난 "이 함께

pip install virtualenv==15.0.1 

근무 버전으로 다시 설치 한 후

pip uninstall virtualenv 

을 실행하여 성공을 장소에 VIRTUALENV의 올바른 "버전, 내 독극물 명령

source .tox/py27/bin/activate 

를 실행하고 드를 볼 수 있었다 PIP

pip --version 
pip 8.0.3 
+1

pip가 virtualenv_support 패키지에 번들되어 있기 때문에 기존 virtualenv를 제거하는 것이 중요하다는 것을 발견했습니다.이 패키지는 virtualenv 업데이트로 업데이트되지 않습니다 –

1

이에 대한 해결 방법 물려 버전은 여기에 있습니다 : 그것은 내가 써야했다 작동하도록했지만 https://github.com/pypa/pip/issues/3666

내 스크립트에서 "PIP == 8.1.1을 설치 PIP". 요점을 되풀이하려면 다음을

이 프로젝트에 pip.sh 스크립트를 추가

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

은 독극물에 추가합니다.입력 :

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

최근에이 문제가 발생했습니다. 나는 잠시 동안 가지고 있었지만 파이썬 2/3 코드로 가끔 실패했기 때문에 등록하지 않았다. 이것이 일어날 수있는 또 다른 방법은, 나 같은 경우 다른 Python 버전간에 virtualenv를 변경하고 정리하지 않는 것입니다.

python2python을 가리키는 지 확인하려면 /bin 또는 /Scripts을 확인하십시오. virtualenv가 Python 3이면 이것은 python2이 실제로 Python 3을 호출한다는 것을 의미합니다. 물론 virtualenv가 Python 2이고 Python 3 코드를 테스트하고 싶다면 그 반대입니다.

+0

응답 해 주셔서 감사합니다. 솔직히이 사실을 기억하지 못했습니다. 너무 오래되었습니다. – Zack