繁体   English   中英

无法从 Jenkins 管道运行 Python .py

[英]Unable to run Python .py from Jenkins pipeline

从 Jenkins 管道无法运行 python 脚本。 Jenkins 和 python 脚本位于 aws ec2 实例上

将代码片段添加到 Jenkins Pipeline 节点,jenkins 能够运行 make 文件(意思是,它可以开始执行 makefile),但是在 jenkins 控制台输出中,它会出现 Python modules not found 错误。 相同的 make 文件在 ec2 实例上运行良好。

node {
    stage('Deploy') { 
        sh "(make -f /var/lib/jenkins/workspace/test-build-job/runpy)" 
    }
}
*******************************************
runpy makefile:
SHELL := /bin/bash

run:
        nohup /usr/bin/python3 /var/lib/jenkins/workspace/test-build-job/aaa.py 2>&1 > aaa.out &
        nohup /usr/bin/python3 /var/lib/jenkins/workspace/test-build-job/bbb.py 2>&1 > bbb.out &

******************************************
Error in the console output:
ModuleNotFoundError: No module named 'flask'
******************************************
Printed sys.path from py:
When run on EC2: 
/var/lib/jenkins/workspace/test-build-job', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/home/ec2-user/.local/lib/python3.6/site-packages', '/usr/local/lib64/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages', '/usr/lib64/python3.6/dist-packages', '/usr/lib/python3.6/dist-packages

/var/lib/jenkins/workspace/test-build-job', '/usr/lib64/python3.6', '/usr/lib64/python3.6/lib-dynload', '/usr/local/lib64/python3.6/site-packages', '/usr/local/lib/python3.6/site-packages', '/usr/lib64/python3.6/dist-packages', '/usr/lib/python3.6/dist-packages

-------'/home/ec2-user/.local/lib/python3.6/site-packages'在 jenkins 运行中丢失(我可以在这个位置看到 Flask)

--- 使用sys.path.append("/home/ec2-user/.local/lib/python3.6/site-packages")在 .py 中添加路径

没有帮助,仍然看到模块未找到错误:(

问题是,没有安装正在运行代码的烧瓶模块。

我假设代码在 master 上运行,因为我在代码中没有看到代理声明。 所以,看起来你的詹金斯大师没有安装所需的模块。

暂无
暂无

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

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