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开头
这显然是"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)