Ubuntu下jenkins执行python出现找不到module

工作环境

  • 系统版本:ubuntu18
  • java版本:jdk1.8
  • python版本:python3.6
  • jenkins版本:jenkins2.190.3
  • jenkins安装方法:apt-get安装

问题点

在ubuntu下用的jenkins,所有需要的module已经是预先安装好了,在任务中执行python3脚本时报找不到module错误,报错log如下:
在这里插入图片描述

问题分析

把当前目录添加到系统环境变量中(无效)

因为之前在windows上也遇到过类似的问题,大概是因为python环境变量的问题,解决方法就是将当前的路径加入到系统环境变量中,把下面这段代码加入到你要执行的python脚本代码的最前面。但是这次在ubuntu下好像并没有什么luan用。

import os
import sys
# 把当前目录加入到系统环境变量中
sys.path.append(os.path.split(os.path.dirname(os.path.abspath(__file__)))[0])
linux用户权限问题(无效)

然后我就想到了是不是用户权限的问题,查看了下jenkins的目录都是属于一个叫jenkins的用户;
在jenkins执行任务的shell脚本中通过 whoami 命令查看了下当前用户,就是jenkins,这应该是在我们安装jenkins的时候,系统默认创建了jenkins这么一个用户,这是一个普通用户~
查阅资料,发现可以通过修改配置来改变jenkins启动用户,修改/etc/default/jenkins文件下的JENKINS_USER属性
改完后,重启jenkins,jenkins报错,还是行不通,把配置再改回去。

	# 默认是用户是jenkins
	# user and group to be invoked as (default to jenkins)
	#JENKINS_USER=$NAME
	JENKINS_USER=root
	JENKINS_GROUP=$NAME

到这里,其实问题已经基本找到了,只是操作方法有点行不通,或者是没有配置没有改对。
问题点就出在我使用的账号,我使用的服务器是搭建的,账号也是运维给的,所以之前的所有操作都是用的这个账号,包括python环境安装,pip安装工具包~ 然后这里jenkins启动的时候是用的自己创建的jenkins的账号,所以其实这两个账号所在的环境是不一样的~ 导致在jenkins用户的环境下找不到python的module。

解决方法

因为已经有了jenkins这个账号了,所以给这个jenkins这个账号去设置一个密码

	sudo passwd jenkins
	#...输入你的密码

用jenkins这个账号去登陆你的服务器
然后用pip命令去安装你需要的module,装完之后重启下jenkins服务,再执行的你的任务,应该就可以找到module了。

	jenkins@ceshi:~$pip3 install xxxxx

我的这个方法比较笨,也可以用其它的办法解决。

  1. 在最开始安装的时候,就去设置这个启动用户为当前你使用的用户,这样子就不会有环境的问题的。
  2. 修改配置文件/etc/default/jenkins和/etc/init.d/jenkins,来改变jenkins的启动用户,反正就这两个,具体怎么改,自己查查资料。
  3. 自己通过配置命令去启动来改变启动的用户,具体操作自行查资料。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值