Linux环境jenkins 运行报错:ModuleNotFoundError: No module named ‘xxx‘
创始人
2024-06-03 12:26:45
0

Linux环境jenkins 运行报错:ModuleNotFoundError: No module named ‘xxx’【已解决】

一、背景
在做自动化测试脚本jenkins持续集成构建时,发现Linux环境jenkins 运行报错:ModuleNotFoundError:No module named ‘AutoFrame’(在本地的cmd即windows命令行模式运行也报一样的错误ModuleNotFoundError)

二、原因分析
在Linux运行时,都是根据当前运行的文件(run.py或者main_run.py)来查找路径,所以会存在部分文件中导入模块时,找不到模块(即找不到导入模块的路径)。所以需要解决在Linux环境运行时相对路径的问题。

三、解决办法
解决方案1
在要执行的模块run.py或main_run.py文件最开头的位置添加:
import sys
sys.path.append(‘…’)

sys.path.append(‘…’),代表添加当前路径的上一级目录,这种方法是运行时修改,脚本运行后就会失效

再次运行后,没有出现ModuleNotFoundError报错。

但是出现另外一个报错
在这里插入图片描述

----查询资料,结合查看源码,发现还存在path的问题,通过在路径中直接添加…的方式行不通
在这里插入图片描述

第一个方案,没有根本解决问题,尝试第二种方案

解决方案2:
在所要执行的模块main_run.py(或run.py)文件最开头的位置添加:
import sys
import os
curPath=os.path.abspath(os.path.dirname(file))
rootPath=os.path.split(curPath)[0]
sys.path.append(rootPath)

说明:

1、os.path.dirname(file) 返回文件的路径

2、os.path.abspath() 返回文件的绝对路径

3、os.path.split() 通过一对链表的头和尾来划分路径名。链表的tail是最后的路径名元素,head则是它前面的元素。tail部分永远不会包含斜杆符号,如果这个路径名字以斜杆结束,那么tail就是为空。如果这个路径名字以斜杆在路径中,那么head是为空。
os.path.split(Path)[0] 获取Path路径的head
os.path.split(Path)[1] 获取Path路径的tail

4、sys.path是一个列表,它里面包含了已经添加到系统的环境变量路径。当我们要添加自己的引用模块搜索目录时,可以通过列表list的append()方法进行添加。

5、ModuleNotFoundError: No module named 'AutoFrame’报错,说明:自己的程序中引用的xx包,与自己程序脚本所在目录不在同一路径,无法根据默认路径查找到xx包。要解决这个问题,可以通过sys.path的append方法添加搜索路径。

在这里插入图片描述

再次运行,没有出现报错,正常运行,Jenkins运行成功
在这里插入图片描述

借鉴网址:https://blog.csdn.net/qq_45636525/article/details/121384358

相关内容

热门资讯

“砥、祗、底、低、坻、抵”的读... “砥、祗、底、低、坻、抵”的读音和组词,分别是什么?1.周道如砥(dǐ)2.祗(zhī)候回音3.底...
幸福蓝海跌1.65%,成交额1... 7月14日,幸福蓝海跌1.65%,成交额1.36亿元,换手率3.41%,总市值39.94亿元。异动分...
华安证券跌1.94%,成交额4... 7月14日,华安证券跌1.94%,成交额4.32亿元,换手率1.51%,总市值284.45亿元。异动...
微笑文案短句 微笑文案短句微笑文案短句(精选46句) 1.终其一生没有找到合适的伴侣,必然是遗憾;但千万不要为了填...
友讯达涨0.80%,成交额34... 7月14日,友讯达涨0.80%,成交额3420.39万元,换手率1.55%,总市值27.62亿元。异...
江山欧派涨1.66%,成交额8... 7月14日,江山欧派涨1.66%,成交额8870.52万元,换手率3.05%,总市值29.36亿元。...
贝肯能源跌0.19%,成交额1... 7月14日,贝肯能源跌0.19%,成交额1.83亿元,换手率9.04%,总市值20.90亿元。异动分...
杰普特涨5.21%,成交额2.... 7月14日,杰普特涨5.21%,成交额2.27亿元,换手率2.86%,总市值80.60亿元。异动分析...
央行:货币政策支持实体经济效果... 经济观察网 据央视新闻客户端消息,今天(7月14日)下午,国务院新闻办公室举行新闻发布会,中国人民银...
开立医疗跌0.97%,成交额7... 7月14日,开立医疗跌0.97%,成交额7460.99万元,换手率0.60%,总市值123.50亿元...