树莓派Linux环境下PyInstaller打包Flask应用报错无执行文件
问题原因
你遇到的报错是PyInstaller 4.6版本在armv6架构的32位树莓派系统上检索Python动态库时,会默认遍历系统不存在的/lib32目录导致触发文件不存在异常。
解决方法
- 方案1:创建缺失的空目录即可解决遍历异常,执行命令:
sudo mkdir /lib32
创建完成后重新执行你的打包命令pyinstaller --onefile Main.py即可正常生成可执行文件。
- 方案2:不想修改系统目录的话,可以手动指定Python动态库路径绕过目录检索:
- 先找到你的系统内Python动态库路径:
find /usr/lib -name "libpython3.7*.so"- 执行打包时追加
--python-library参数指定上面查到的路径,示例:
pyinstaller --onefile --python-library /usr/lib/arm-linux-gnueabihf/libpython3.7m.so.1.0 Main.py
额外注意事项
- 打包Flask应用完成后,需要手动将项目下的
templates、static等资源文件夹复制到dist目录下和生成的可执行文件同层级,否则运行时Flask会找不到模板和静态资源。 - 也可以升级PyInstaller到最新版本,该目录遍历问题在后续版本中已经修复,升级命令:
pip install --upgrade pyinstaller
内容的提问来源于stack exchange,提问作者Priti
相关产品推荐
相关产品推荐

