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

导入OpenAI Whisper后无法用PyInstaller生成.exe文件求助

PyInstaller打包Whisper脚本时tqdm元数据缺失的解决方法

运行打包后的.exe文件时出现以下错误:

Traceback (most recent call last):
  File "transformers\utils\versions.py", line 108, in require_version
  File "importlib\metadata\__init__.py", line 996, in version
  File "importlib\metadata\__init__.py", line 969, in distribution
  File "importlib\metadata\__init__.py", line 548, in from_name
importlib.metadata.PackageNotFoundError: No package metadata was found for tqdm

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "Whisper.py", line 2, in <module>
  File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
  File "whisper\__init__.py", line 12, in <module>
  File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
  File "whisper\decoding.py", line 11, in <module>
  File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
  File "whisper\tokenizer.py", line 8, in <module>
  File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
  File "transformers\__init__.py", line 30, in <module>
  File "PyInstaller\loader\pyimod02_importers.py", line 352, in exec_module
  File "transformers\dependency_versions_check.py", line 41, in <module>
  File "transformers\utils\versions.py", line 123, in require_version_core
  File "transformers\utils\versions.py", line 110, in require_version
importlib.metadata.PackageNotFoundError: No package metadata was found for The 'tqdm>=4.27' distribution was not found and is required by this application.
Try: pip install transformers -U or pip install -e '.[dev]' if you're working with git main
[10092] Failed to execute script 'Whisper' due to unhandled exception!

用户的源码:

import whisper
import os
from timeit import default_timer as timer

start = timer()

audio_file = "MyAudioFile.wav"

model = whisper.load_model("small")

options = {"language": "de"}

res = model.transcribe(f"C:/Users/Username/Desktop/Transcribe/{audio_file}", **options)

end = timer()

os.system("cls")


print(res["text"])
print("\nFinished in " + str(end-start) + " seconds!")
input("Press ENTER to close the program.")

脚本在本地控制台/VS Code运行正常,但打包后.exe报错,重装tqdm无效。


解决方法:

  • 显式导入tqdm到脚本
    在脚本开头添加tqdm的导入语句,让PyInstaller的自动依赖检测能捕获到这个包:

    import tqdm  # 新增该行
    import whisper
    import os
    from timeit import default_timer as timer
    
  • 用hidden-import参数强制包含依赖
    命令行打包时执行:

    pyinstaller --hidden-import=tqdm Whisper.py
    

    若使用auto-py-to-exe,在「Hidden Imports」输入框中填入tqdm,再重新打包。

  • 修改.spec文件补全元数据

    1. 生成.spec文件:
      pyinstaller --name Whisper Whisper.py
      
    2. 打开Whisper.spec,找到hiddenimports列表,添加tqdm:
      hiddenimports=['tqdm'],
      
    3. 若仍存在元数据问题,找到本地tqdm的dist-info文件夹路径(如C:\PythonXX\Lib\site-packages\tqdm-XXXX.dist-info),添加到datas中:
      datas=[(r'C:\PythonXX\Lib\site-packages\tqdm-XXXX.dist-info', 'tqdm-XXXX.dist-info')],
      
    4. 用修改后的.spec文件重新打包:
      pyinstaller Whisper.spec
      
  • 清理缓存后重新打包
    删除生成的build、dist文件夹,以及脚本目录下的__pycache__文件夹,避免缓存残留导致的问题,再重新执行打包命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:40:10