使用PyInstaller打包OpenAI Whisper程序运行时出现FileNotFoundError求助
问题原因及解决方向
核心原因:资源路径配置不匹配
你在.spec文件里的datas配置目标路径写错了。PyInstaller打包后,程序运行时会把指定的资源文件复制到临时目录(即报错里的_MEIxxxxxx),而Whisper预期的mel_filters.npz路径是临时目录/whisper/assets/下,但你配置的目标路径是.venv/Lib/site-packages/whisper/assets,这会导致文件被放到临时目录/.venv/Lib/site-packages/whisper/assets/下,自然找不到。
其他可能的辅助原因
- 打包时未激活虚拟环境:如果打包时没进入你的
.venv虚拟环境,PyInstaller可能会调用全局的Whisper库,导致你指定的虚拟环境路径下的资源没被正确打包。 - 资源文件路径错误:如果你的虚拟环境结构和常规不同,或者Whisper安装路径不是
.venv/Lib/site-packages/whisper,也会导致找不到源文件。
正确的配置示例
修改.spec里的datas配置,把目标路径改成whisper/assets:
a = Analysis( # ... 其他配置 datas=[('.venv/Lib/site-packages/whisper/assets/mel_filters.npz', 'whisper/assets')], # ... 其他配置 )
另外,recursive_copy_metadata="whisper"这个参数主要用于复制包的元数据(如LICENSE、README等),和资源文件无关,可以去掉。
内容的提问来源于stack exchange,提问作者Ryan Pergent
相关产品推荐
相关产品推荐

