繁体   English   中英

Jenkins 中的 Python 模块导入失败

[英]Python module import failure in 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,此错误都存在。

可能是你jenkins环境的PATH设置不对造成的。事实上,你的默认用户和jenkins-user的环境是不一样的。

您可以尝试在 jenkins-user 环境中查找 PATH 和 PYTHONPATH 是什么。 尝试在 jenkins “echo $path” 等中运行“shell 命令”以查看它们是什么。

在大多数情况下,您需要自己设置 PATH。 你可以参考这个答案。 Jenkins:将我的 Python 模块放在 PYTHONPATH 上

面临同样的问题。

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

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

为确保构建仅在您的主节点中运行,请在“限制此项目可以运行的位置”设置中输入 master,如下所示。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM