Windows 10首次运行PyInstaller打包程序报FileNotFoundError问题
PyInstaller Windows打包报WinError 2问题排查
基础信息
- 运行环境:Windows 10、Python 3.10.5、PyInstaller 5.1
- 执行的打包命令:
C:\Users\username\Desktop\CROWGUI>pyinstaller --onefile --noconfirm --console --clean --log-level=WARN --key=MySuperSecretPassword --strip --add-data=“commander.py;.” crow_gui.py
- 报错核心提示:
FileNotFoundError: [WinError 2] 系统找不到指定文件
原因说明
- 日志开头关于IOKit、CoreFoundation的警告为无关提示:是项目依赖的
pyserial库内置的macOS平台串口枚举代码,Windows环境下PyInstaller会自动跳过这部分依赖,不会引发打包失败。 - 核心报错由
--strip参数引发:该参数作用是裁剪二进制文件的调试符号表以缩小产物体积,Windows平台下该功能需要调用MinGW工具链中的strip.exe实现。当前使用的是微软商店分发的Python版本,默认环境没有集成MinGW工具链,PyInstaller执行到裁剪步骤时找不到strip.exe,直接抛出文件不存在错误。 - 额外参数问题:输入的命令中
--add-data参数后的引号为中文全角符号,实际执行时会导致参数解析异常,需要替换为英文半角引号。
解决方法
- 优先选择(无额外依赖):直接移除打包命令中的
--strip参数即可正常完成打包,对程序功能没有任何影响,仅打包后的exe体积会比开启strip大几MB。 - 若需要保留strip裁剪功能:安装MinGW-w64工具链,将MinGW安装目录下的
bin文件夹路径添加到系统PATH环境变量,打开新终端执行strip --version确认命令可正常识别后,再运行打包命令即可。 - 修正命令参数符号:将
--add-data后的全角引号替换为英文半角引号,移除--strip参数后的参考打包命令如下:
pyinstaller --onefile --noconfirm --console --clean --log-level=WARN --key=MySuperSecretPassword --add-data="commander.py;." crow_gui.py
内容的提问来源于stack exchange,提问作者RPG
相关产品推荐
相关产品推荐

