【发布时间】:2011-05-26 16:22:12
【问题描述】:
我们有带有古老 Python 2.4 解释器的 CentOS。
但我们想用更新的 2.5/2.6 语法编写测试。
假设我们安装了第二个 Python 解释器(例如 python2.6)有什么办法吗 运行 'nosetests' shell 命令并告诉它使用特定的 Python 解释器而不是默认的解释器?
【问题讨论】:
标签: python unit-testing centos nose
我们有带有古老 Python 2.4 解释器的 CentOS。
但我们想用更新的 2.5/2.6 语法编写测试。
假设我们安装了第二个 Python 解释器(例如 python2.6)有什么办法吗 运行 'nosetests' shell 命令并告诉它使用特定的 Python 解释器而不是默认的解释器?
【问题讨论】:
标签: python unit-testing centos nose
好吧,我要做的是安装不同版本的 Python(比如 2.6),然后创建一个 virtualenv 并在其中安装鼻子。然后它将使用该版本的鼻子并保持您的东西隔离。
您也可以考虑使用tox 尝试桥接解释器。
最后,您可以简单地运行nose python2.6 $(which nose) [other options] args 以使用较新的Python 运行nose。
【讨论】:
nose 命令是一个python 脚本。 $(which nose) 将扩展到脚本的完整路径(这是 virtualenv 感知的,因此您将获得正在运行的确切路径)。将此作为参数显式传递给首选 python 解释器将使用该解释器运行脚本。因此,如果您在 #! 行中安装了 nose 并使用旧版本的 python,您可以使用它来更改解释器并运行脚本。
nosetests 文件是用 Python 编写的,因此只需在新版本中运行它即可。查找文件所在的位置:
which nosetests
然后:
python2.6 /usr/bin/nosetests
调整名称和路径以匹配您的系统。我还没有测试过,但这应该可以。
【讨论】:
ImportError...