已安装lxml仍报ModuleNotFoundError的Windows Python脚本问题
解决Python脚本导入lxml模块失败的方案
问题分析
执行命令py C:\updatefile.py "E:\Default\test.dat"时,Python3.5.3抛出ModuleNotFoundError: No module named 'lxml',但lxml已确认安装在c:\programme\python35\lib\site-packages。从报错栈来看,导入lib_TestFolders时触发了from lxml import etree的执行,问题根源可能是Python环境不匹配、模块搜索路径缺失或lib_TestFolders模块导入异常。
具体解决方案
1. 锁定Python3.5.3环境执行脚本
- 检查
py命令默认指向的Python版本:
若输出不是3.5.3,直接用Python3.5的完整路径运行脚本:py --versionc:\programme\python35\python.exe C:\updatefile.py "E:\Default\test.dat" - 验证该环境下是否真的安装了lxml:
若未找到lxml,重新安装到该环境:c:\programme\python35\Scripts\pip.exe listc:\programme\python35\Scripts\pip.exe install lxml
2. 修复Python模块搜索路径
- 在脚本最开头添加代码,打印当前Python的模块搜索路径:
import sys print("当前模块搜索路径:", sys.path) - 若输出中没有
c:\programme\python35\lib\site-packages,手动将该路径添加到脚本开头:import sys sys.path.append('c:\programme\python35\lib\site-packages')
3. 解决lib_TestFolders模块导入异常
报错栈显示导入lib_TestFolders时,实际执行了当前脚本update.py的第3行,说明Python找不到正确的lib_TestFolders模块:
- 确认
lib_TestFolders.py文件或lib_TestFolders文件夹存在于以下任一位置:- 脚本所在目录(
C:\) - Python3.5的
site-packages目录 - 已添加到
sys.path的其他目录
- 脚本所在目录(
- 若
lib_TestFolders在其他路径,将该路径添加到脚本开头:import sys sys.path.append('lib_TestFolders所在的完整目录路径')
4. 排查循环导入问题
如果lib_TestFolders.py中存在导入update.py的代码,会引发循环导入,触发异常。检查lib_TestFolders.py的导入语句,移除对update.py的不必要导入。
内容的提问来源于stack exchange,提问作者Tester two DS
相关产品推荐
相关产品推荐

