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

使用PyInstaller打包时仅出现pikepdf导入失败问题求助

解决auto-py-to-exe打包含pikepdf脚本时的版本检测错误

错误原因

打包后的exe运行时,pikepdf通过importlib_metadata动态读取版本元数据,但PyInstaller未收集到pikepdf的元数据文件(如dist-info目录下的文件),导致版本检测失败。

解决方案

方案1:硬编码pikepdf版本号

直接修改pikepdf的版本文件,跳过动态检测:

  1. 找到Python环境中pikepdf的安装目录(比如Lib\site-packages\pikepdf)
  2. 打开_version.py文件,将原有动态获取版本的代码:
    from importlib_metadata import version as _version
    __version__ = _version("pikepdf")
    
    替换为硬编码版本号:
    __version__ = "5.4.2"
    
  3. 保存文件后,重新用auto-py-to-exe打包脚本。

方案2:强制PyInstaller收集pikepdf的元数据和依赖

在auto-py-to-exe中配置额外参数,确保元数据被打包:

  1. 切换到Advanced标签页
  2. 在Hidden Imports输入框中添加:pikepdf、importlib_metadata
  3. 在Additional Files区域,点击Add Files,找到Python环境中site-packages下的pikepdf-5.4.2.dist-info文件夹(版本号对应你的安装版本),将其添加进去,设置目标路径为同目录(即不修改输出路径)
  4. 重新打包生成exe。

方案3:调整版本兼容性

尝试更换pikepdf或PyInstaller版本,避开兼容性问题:

  • 降级pikepdf到5.3.x版本:执行pip install pikepdf==5.3.2
  • 或降级PyInstaller到5.13.2版本(auto-py-to-exe会使用对应版本的PyInstaller):执行pip install pyinstaller==5.13.2
  • 重新打包测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 04:12:09