Jenkins环境中导入xml.dom.minidom时出现ModuleNotFoundError问题求助
Jenkins环境中导入xml.dom.minidom时出现ModuleNotFoundError问题求助
看起来你在Jenkins环境里运行Python脚本时碰到了模块找不到的问题,我来帮你分析下可能的原因和解决办法:
你遇到的错误信息:
Traceback (most recent call last): File "C:\\tmp\\test_temp1\\test\\data\\test.py", line 5, in <module> from xml.dom import minidom File "C:\\tool\\python\\3.9.5.0.2\\python-3.9.5.amd64\\lib\\xml\\dom\\minidom.py", line 23, in <module> from xml.dom.xmlbuilder import DOMImplementationLS, DocumentLS File "C:\\tool\\python\\3.9.5.0.2\\python-3.9.5.amd64\\lib\\xml\\dom\\xmlbuilder.py", line 6, in <module> from xml.dom.NodeFilter import NodeFilter ModuleNotFoundError: No module named 'xml.dom.NodeFilter'
你的test.py代码片段:
import os import sys import json import re from xml.dom import minidom # ... 其他代码 docs = minidom.parse(file)
可能的解决思路:
- 确认Jenkins使用的Python环境是否正确:在Jenkins的构建步骤里添加一个命令执行步骤(Windows用cmd,Linux用shell),运行
python --version和where python(Windows)/which python(Linux),看看输出的路径和版本是不是你配置的C:\tool\python\3.9.5.0.2\python-3.9.5.amd64,有可能Jenkins默认用了系统其他的Python环境,导致模块路径不对。 - 检查Python安装是否完整:
xml.dom.NodeFilter是Python标准库的一部分,正常安装的Python 3.9.5应该自带这个模块。你可以手动去C:\tool\python\3.9.5.0.2\python-3.9.5.amd64\lib\xml\dom目录下查看是否存在NodeFilter.py文件,如果没有,说明你的Python安装包损坏或不完整,建议重新下载官方的Python 3.9.5安装包,覆盖现有路径重新安装。 - 验证Jenkins的运行权限:有时候Jenkins服务的运行用户没有读取Python安装目录文件的权限,也会导致模块加载失败。你可以检查Python安装目录的权限设置,确保Jenkins服务用户拥有读取该目录及所有子文件的权限。
- 在Jenkins环境外测试脚本:先在Jenkins所在的机器上,打开命令行切换到指定的Python环境(运行
C:\tool\python\3.9.5.0.2\python-3.9.5.amd64\python.exe),然后执行你的test.py脚本,如果本地运行正常,那问题大概率出在Jenkins的环境配置上,比如环境变量未正确设置,或者构建时的工作目录存在异常。
备注:内容来源于stack exchange,提问作者Gowrisankar
相关产品推荐
相关产品推荐

