You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

auto-py-to-exe打包aspose.words代码后运行exe报错

报错根因

这个导入错误是打包环节漏依赖导致的。aspose.words不是纯Python实现的库,运行时依赖aspose.pygc、aspose.pydrawing等多个内置原生二进制模块,auto-py-to-exe底层基于PyInstaller,默认的打包分析逻辑无法自动识别到这些隐式依赖的原生模块,打包后的exe缺少对应文件,运行时就会抛出模块加载失败的错误。
另外你贴的代码里文件名处理逻辑存在bug,也可能在后续运行时触发异常。

解决步骤
  • 先做前置校验:直接在本地Python环境运行你的原始脚本,确认脚本本身可以正常完成PDF转TXT的操作,排除本地aspose库安装损坏、授权异常等基础问题。
  • 调整打包参数,补全缺失的依赖:
    如果你直接用PyInstaller命令行打包,执行以下命令即可自动收集aspose的全部相关模块和资源:
    pyinstaller --onefile --collect-all aspose 你的脚本文件名.py
    
    如果你用auto-py-to-exe图形界面操作,在高级设置区找到「收集所有包/模块」的输入框,填入aspose,再执行打包即可,不需要手动一个个加隐式导入,--collect-all aspose参数会自动把aspose下所有子模块、二进制文件、资源都打包进去。
  • 修复代码里的文件名处理bug:你当前用的namePDF.strip('.pdf')是错误写法,strip()方法会逐个匹配删除字符串首尾出现在参数里的所有字符,不是按完整后缀匹配,遇到文件名首尾带p、d、f、.字符的情况会误删文件名内容。正确的去后缀写法参考:
    import os
    import aspose.words as aw
    
    namePDF = 'NF-TESTE.pdf'
    doc = aw.Document(namePDF)
    nameTXT = os.path.splitext(namePDF)[0]
    doc.save(nameTXT + ".txt")
    
运行注意事项
  • 打包生成的exe不要放在包含中文、空格、特殊符号的路径下运行,aspose的原生模块对非ASCII路径兼容性较差,容易触发未知加载错误。
  • 打包环境的系统架构、Python版本要和运行环境匹配,比如64位Python打包的exe无法在32位Windows系统上运行。

内容的提问来源于stack exchange,提问作者user19355416

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 06:48:22