Jenkins中的Python模块导入失败

时间:2015-02-15 23:26:32

标签: python jenkins

我有一个项目,我正试图在Jenkins上测试和运行。在我的机器上它工作正常,但是当我尝试在Jenkins中运行它时,它无法在工作区中找到一个模块。

在主工作区目录中,我运行命令:

python xtests/app_verify_auto.py

得到错误:

+ python /home/tomcat7/.jenkins/jobs/exit103/workspace/xtests/app_verify_auto.py

Traceback (most recent call last):

  File "/home/tomcat7/.jenkins/jobs/exit103/workspace/xtests/app_verify_auto.py", line 19, in <module>

    import exit103.data.db as db

ImportError: No module named exit103.data.db

Build step 'Execute shell' marked build as failure

Finished: FAILURE

目录exit103 / data存在于工作空间中并且是正确的路径,但是python似乎无法找到它。

无论是否使用virtualenv都存在此错误。

2 个答案:

答案 0 :(得分:1)

这可能是由于您的PATH设置在jenkins环境中不正确。事实上,默认用户和jenkins用户的环境不一样。

您可以尝试查找jenkins用户环境中的PATH和PYTHONPATH。 尝试在jenkins“echo $ path”中运行“shell命令”,依此类推,看看它们是什么。

大多数情况下,您需要自己设置PATH。 你可以参考这个答案。 Jenkins: putting my Python module on the PYTHONPATH

答案 1 :(得分:0)

遇到同样的问题。

对于正在阅读本文的其他人,请在您的主节点中运行构建。它为我解决了问题。

在从节点中运行构建并不能正确访问所有 python 模块和其他命令,例如工作区的 jq

To ensure that the build only runs in your master node, enter master in the "Restrict where this project can be run" settings like this.

相关问题