当安装了多个版本的python时,tox使用了错误版本的pip

ope*_*eek 10 python pip version setup.py tox

我有一个支持python 2.4,2.6和2.7的构建盒.这导致在他们自己的python安装中根据需要安装各种版本的pips.我正在使用tox测试setup.py.

每当我运行一个时{python2.7_installation_dir}/bin/python setup.py test,这会产生一个.tox目录.在.tox我运行的目录中

py27/bin/pip --version 
pip 1.4.1 from {my_package}/.tox/py27/lib/python2.7/site-packages (python 2.7)


[buildbot@BUILD-SERV-01 .tox]# python2.7 
Python 2.7.6 (default, Nov 20 2013, 15:33:09) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pip
>>> pip.__version__
'1.5.2'
Run Code Online (Sandbox Code Playgroud)

所以.tox目录中的pip版本是1.4.1,其中为我用来执行的python解释器安装的pip setup.py test是1.5.2.这在运行测试时会导致错误,因为它使用pip来安装目录,其中一些来自外部源,而在1.5.2中我们需要为其中一个模块明确设置--allow-external --allow-unverified标志.在1.4.1中不存在,每次通过tox调用测试时都会导致错误.

只有一个python2.7安装,它是从源安装的.但我认为它正在运行pip 1.4.1,但现在已升级为使用1.5.2.如何使用旧版本?是否有任何.pth可能遗留下来的文件或内容需要清理?

我可以tox直接放下并运行pytests,但我更喜欢通过它运行它们tox.
如果您想查看日志,请告诉我,我可以使用日志更新问题.

sor*_*rin -2

使用这种方法:在与 setup.py 相同的级别创建一个 tox.ini 文件,并用它来告诉 tox 要运行哪个版本,如下所示