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

使用PyInstaller生成跨平台可执行文件时遇文件找不到错误

问题解决与相关说明

一、修复FileNotFoundError的正式方案

错误根源是PyInstaller打包时未自动包含ssqueezepy库的configs.ini配置文件,导致运行时无法找到该文件。以下是两种可靠修复方式:

1. 命令行直接指定打包文件

先找到Python环境中ssqueezepy/configs.ini的实际路径:

  • 虚拟环境下路径示例:venv/lib/pythonX.X/site-packages/ssqueezepy/configs.ini
  • 系统环境下路径示例:/usr/local/lib/pythonX.X/dist-packages/ssqueezepy/configs.ini

然后执行打包命令,通过--add-data参数指定要打包的文件:

pyinstaller --debug=all --add-data "/实际路径/ssqueezepy/configs.ini:ssqueezepy" gui.py

这里的冒号是Linux系统的路径分隔符,作用是将源文件打包到可执行文件目录下的ssqueezepy子文件夹中,保持和原库一致的目录结构。

2. 编辑PyInstaller的spec文件

先生成spec配置文件:

pyinstaller --debug=all gui.py

打开生成的gui.spec,找到datas=[]行,修改为:

datas=[('/实际路径/ssqueezepy/configs.ini', 'ssqueezepy')],

最后重新执行打包:

pyinstaller gui.spec

二、关于configs.ini

这是ssqueezepy库的全局配置文件,用来存储该库的默认运行参数,比如小波变换的默认小波基、输出格式、计算精度等设置。库在初始化阶段会读取该文件加载默认配置,因此必须和库代码一同打包。

三、其他生成跨平台可执行文件的方法

1. Ubuntu下生成Windows可执行文件

PyInstaller本身不支持跨系统直接打包,要在Ubuntu上生成Windows可执行文件,可采用以下两种方式:

  • Wine运行Windows版PyInstaller:在Ubuntu上安装Wine,下载Windows版Python和PyInstaller,通过Wine调用Windows环境的PyInstaller完成打包。
  • Docker容器打包:拉取包含Windows环境、Python和PyInstaller的Docker镜像,在容器内完成打包操作,Ubuntu本地通过Docker运行该容器即可。

2. 替代PyInstaller的工具

  • Nuitka:将Python代码编译为C代码后生成可执行文件,性能更优,同样可通过Wine在Ubuntu下编译Windows可执行文件。
  • cx_Freeze:和PyInstaller功能类似的打包工具,需对应系统环境,或通过Wine/Docker实现跨系统打包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 05:50:24