如何用不同版本的Python运行Python鼻子测试
我们使用CentOS与古老的Python 2.4解释器。如何用不同版本的Python运行Python鼻子测试
但我们想用新的2.5/2.6语法写出测试。
假设我们安装了第二个Python解释器(例如python2.6),有什么办法可以运行'nosetests'shell命令并告诉它使用特定的Python解释器而不是默认的解释器?
nosetests文件是在Python中,所以它应该只是在新版本中运行它的问题。找到该文件是:
which nosetests
然后:
python2.6 /usr/bin/nosetests
调整的名称和路径来匹配您的系统。我没有测试过,但应该可以。
那么,我会做的是安装一个不同版本的Python(2.6说),然后创建一个virtualenv并在其中安装鼻子。然后它将使用该版本的鼻子,并保持你的东西隔离。
您也可以考虑使用tox尝试搭建解释器。
最后,你可以简单地运行鼻子python2.6 $(which nose) [other options] args
来运行较新的Python。
[这个答案](http://stackoverflow.com/a/13211456/1470262)到相关的问题很快显示了如何使用virtualenvs。 – 2014-05-27 23:01:18
另外,我对你的“最后”评论感兴趣,但不能完全遵循你的意思。 – 2014-05-27 23:02:00
实际的'nose'命令是一个python脚本。 '$(哪个鼻子)'将展开到脚本的完整路径(这是virtualenv知道,所以你会得到你正在运行的确切的一个)。明确地将此作为参数传递给首选的python解释器将使用该解释器运行该脚本。所以,如果你在'#!'行中安装了'nose'的老版本python,你可以用它来改变解释器并运行脚本。 – 2014-05-28 15:44:57
感谢,会那样做,然后... – 2010-12-16 18:20:05
这与'ImportError'失败,对我来说... – EOL 2016-01-16 20:49:49
@EOL - 鼻子一个ImportError,或别的东西。你需要在你试图运行它的Python中安装鼻子(并且在virtualenv中,如果这是你试图运行它的地方)。 – 2016-01-17 21:11:14