Python抄袭检测脚本运行报ModuleNotFoundError: No module named 'exceptions'问题
报错原因
你安装了Python2时代的旧版docx依赖包,该包的实现依赖Python2内置的exceptions模块,但Python3版本开始已经移除了独立的exceptions模块,所有内置异常都整合到了builtins模块中,因此在Python3.9环境下运行时会触发模块找不到的报错。
同时你代码里用到的from docx import opendocx, getdocumenttext也是旧版docx包的专属用法,新版docx处理包的接口已经完全调整。
解决步骤
- 先卸载当前安装的旧版
docx包,执行命令:pip uninstall docx -y - 安装当前Python3通用的docx处理包
python-docx:pip install python-docx - 修改
extractdocx.py文件中的导入和实现逻辑,替换原有旧接口调用:
# 替换原有from docx import opendocx, getdocumenttext导入语句 from docx import Document # 新增getdocumenttext实现,兼容原有调用逻辑 def getdocumenttext(doc): text_list = [] for para in doc.paragraphs: text_list.append(para.text) return '\n'.join(text_list) # 替换原有opendocx调用 def docxExtract(file_path): doc = Document(file_path) return getdocumenttext(doc)
修改完成后即可解决该报错。
额外注意:你脚本中调用的谷歌AJAX搜索接口已经停止服务,上述报错修复后,全网检索功能仍然无法正常使用,需要替换为可用的搜索接口方可运行完整功能。
内容的提问来源于stack exchange,提问作者Zeeshan Afsar
相关产品推荐
相关产品推荐

