【发布时间】:2014-02-12 14:21:09
【问题描述】:
我有一个支持 python 2.4、2.6 和 2.7 的构建框。这导致在他们自己的 python 安装中安装各种版本的点子。我正在使用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'
所以 .tox 目录中的 pip 版本是 1.4.1,而我用来执行 setup.py test 的 python 解释器安装的 pip 是 1.5.2。这会在运行测试时导致错误,因为它使用 pip 安装目录,其中一些来自外部源,在 1.5.2 中,我们需要为其中一个模块显式设置 --allow-external --allow-unverified 标志在 1.4.1 中不存在,这导致每次我通过 tox 调用测试时都会出错。
python2.7只有一个安装,而且是从源码安装的。但我认为它运行 pip 1.4.1,但现在已升级为使用 1.5.2。 tox怎么能用老版本?是否有任何 .pth 文件或可能遗留的需要清理的东西?
我可以删除 tox 并直接运行 pytests,但我更愿意通过 tox 运行它们。
如果您想查看日志,请告诉我,我可以使用日志更新问题。
【问题讨论】:
-
您找到解决方案了吗?我也有同样的问题。
-
不,由于没有时间研究,我怯懦地放弃了 tox!
标签: python version pip setup.py tox