在Jenkins中设置特定的Python

时间:2014-02-19 12:46:34

标签: python jenkins environment-variables

我是配置Jenkins或Python的新手,但我必须在Jenkins中设置一个单一的测试。我的程序是在Python中,但只适用于Python 2.6,而我应该使用的Jenkins版本是2.7,所以我试图设置Jenkins来设置一些环境变量,以便它准备为特定的测试启动准确的Python(它是一个更大的项目的一部分,将成功运行其他几个运行良好的测试。)

我的想法是在命令中设置执行几个环境变量,如PATH,LD_LIBRARY_PATH和PYTHONPATH,如下面的“执行shell”命令行解释器:

PYTHONPATH=/path/to/python2.6/lib:$PYTHONPATH
PATH=/path/to/python2.6/bin:$PATH
LD_LIBRARY_PATH=/path/to/python2.6/lib:$LD_LIBRARY_PATH

...但是,它仍在调用错误版本的Python。因此,我强迫这些变量:

PYTHONPATH=/path/to/python2.6/lib
PATH=/path/to/python2.6/bin
LD_LIBRARY_PATH=/path/to/python2.6/lib

...我仍然会收到错误,因为旧的Python版本被调用了,即使它不应该出现在PATH中......看来Jenkins会记住旧库的位置但是会尝试加载它们第一

如何在Jenkins的“子项目”中正确设置环境,以便我可以调用不同版本的Python?

谢谢你,最诚挚的问候,

〜斯特凡

3 个答案:

答案 0 :(得分:4)

如果您希望程序使用特定版本的python解释器运行,请指明它in the shebang

#!/usr/bin/python2.6
#your code here

答案 1 :(得分:0)

在调用我的单元测试时,我使用特定python版本在我的Jenkins shell脚本中做了类似的事情:

python3 src/test/unit_test.py

我使用它来使用Python 3.X但它也应该与2.6一起使用:

python2.6 src/test/unit_test.py

答案 2 :(得分:0)

愚蠢的我......我确实正确地做了一些事情,我只是让我的代码的一部分覆盖了PYTHONPATH值,所以我之前找到的解决方案很好。 仅供参考,如果对任何人有任何帮助,我修改了我的shebang;)