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

PyInstaller打包生成的exe运行时提示找不到iapws/VERSION文件报错

问题原因

hiddenimports配置仅能告知PyInstaller收集Python格式的模块代码,iapws包内的VERSION是无后缀的纯文本资源文件,不属于Python代码模块,PyInstaller默认不会自动打包这类资源,因此单文件模式运行时解压到临时_MEI开头的目录后,程序找不到对应路径下的VERSION文件触发报错。

可行解决方法

以下方法任选其一即可,修改配置后请先删除旧的build、dist目录清空打包缓存,再重新执行打包命令避免缓存干扰。

  • 方法1:直接修改spec文件的datas配置(最直接)
    先找到本地Python环境中iapws库的安装位置,通常在site-packages/iapws路径下,确认该目录下存在VERSION文件。打开你的myScript.spec文件,找到Analysis配置块的datas字段,添加VERSION文件的打包规则,示例配置如下:
    a = Analysis(
        ['myScript.py'],
        pathex=[],
        binaries=[],
        datas=[
            # 替换第一个路径为你本地iapws/VERSION文件的实际绝对路径
            ('C:/Python310/Lib/site-packages/iapws/VERSION', 'iapws')
        ],
        hiddenimports=['iapws'],
        # 其余配置保持原有内容不变即可
        hookspath=[],
        hooksconfig={},
        runtime_hooks=[],
        excludes=[],
        win_no_prefer_redirects=False,
        win_private_assemblies=False,
        cipher=None,
        noarchive=False,
    )
    
    配置中元组的第二个参数必须填iapws,保证打包后文件会被解压到_MEIxxx/iapws/VERSION路径,和程序读取的路径完全匹配。
  • 方法2:自定义PyInstaller hook(一劳永逸,适合后续可能用到iapws其他资源的场景)
    在项目根目录新建名为hooks的文件夹,在文件夹内新建hook-iapws.py文件,写入以下内容:
    from PyInstaller.utils.hooks import collect_data_files
    # 自动收集iapws包下所有非代码类资源文件
    datas = collect_data_files('iapws')
    
    之后打开myScript.spec,找到hookspath字段,配置为你新建的hooks目录路径:
    hookspath=['./hooks'],
    
    这种方式不需要手动找VERSION文件路径,PyInstaller会自动识别iapws的所有资源文件,后续iapws版本更新新增其他资源也不需要重复修改配置。
  • 方法3:命令行直接传参打包(不想改spec时用)
    打包时直接在命令中添加--add-data参数指定要打包的资源文件,Windows环境下命令示例:
    pyinstaller --onefile --hiddenimport=iapws --add-data "C:/Python310/Lib/site-packages/iapws/VERSION;iapws" myScript.py
    
    注意Windows系统下--add-data参数的本地路径和打包后目标路径用分号;分隔,不要写错为其他符号。
注意事项

不要直接把整个iapws库的完整目录全部加入datas,容易出现代码重复、版本不匹配的问题,优先选择精准添加缺失文件、或者用官方提供的collect_data_files方法自动收集资源的方式,稳定性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 15:00:56