Tox将错误版本的pip安装到它的虚拟环境中

Zac*_*ack 12 python linux dependencies pip tox

我使用tox来管理一些测试环境.我有一个依赖(backports.ssl-match-hostname)我无法使用最新版本的pip下载,所以我需要恢复到pip 8.0.3以允许安装工作.

我在我的tox.ini文件中包含了8.0.3版本的pip用于依赖项.

deps=
    pip==8.0.3
Run Code Online (Sandbox Code Playgroud)

但是,当我跑

source .tox/py27/bin/activate
Run Code Online (Sandbox Code Playgroud)

并进入虚拟测试环境,然后运行

pip --version
Run Code Online (Sandbox Code Playgroud)

我结束了

8.1.2
Run Code Online (Sandbox Code Playgroud)

但是,在我的tox环境之外,当我运行相同的命令时,我得到了

8.0.3
Run Code Online (Sandbox Code Playgroud)

抓住点子时,tox有什么特别之处吗?为什么我无法指定要用作依赖项的pip版本?

编辑:添加到这个,似乎我能够获取依赖pip == 8.0.3,但对于其他依赖,它们仍然从使用pip == 8.1.2启动的命令运行

所以,我需要首先抓住pip == 8.0.3,然后一旦安装,抓住其他一切.仍然不确定为什么tox以pip == 8.1.2开头

Zac*_*ack 6

这显然是"virtualenvs"python包的结果,它包含一个预先选择的python包,它引用了一组,其中一个是最新和最好的点子.

我不知道这是否是首选方式,但我通过运行找到了成功

pip uninstall virtualenv
Run Code Online (Sandbox Code Playgroud)

然后重新安装有效的版本

pip install virtualenv==15.0.1
Run Code Online (Sandbox Code Playgroud)

有了virtualenv的"正确"版本,我能够运行我的tox命令

source .tox/py27/bin/activate
Run Code Online (Sandbox Code Playgroud)

并查看所需的pip版本

pip --version
pip 8.0.3
Run Code Online (Sandbox Code Playgroud)