我是配置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?
谢谢你,最诚挚的问候,
〜斯特凡
答案 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;)