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

PyInstaller打包PictureFrame2020.py生成可执行文件启动报错求助

解决PyInstaller打包pi3d程序时丢失Shader文件的问题

问题原因

pi3d库依赖的Shader头文件(如std_head_vs.inc)属于非Python资源文件,PyInstaller默认不会自动识别并打包这类文件,导致程序运行时临时目录中缺少必要文件,触发FileNotFoundError。

解决方案

1. 定位pi3d的shaders目录

在你的Python环境中找到pi3d的安装路径,其中shaders子目录包含所有需要的.inc和.glsl文件:

  • Linux/macOS:通常路径类似/usr/lib/pythonX.X/site-packages/pi3d/shaders(X.X为Python版本)
  • Windows:通常路径类似C:\PythonXX\Lib\site-packages\pi3d\shaders

2. 配置PyInstaller打包规则

方法一:命令行直接添加参数

使用--add-data参数指定要打包的资源目录(Linux/macOS用:分隔路径,Windows用;):

pyinstaller --add-data "/实际路径/pi3d/shaders:pi3d/shaders" PictureFrame2020.py

方法二:修改spec文件

  1. 先生成spec文件:
pyinstaller --name PictureFrame2020 PictureFrame2020.py
  1. 打开生成的PictureFrame2020.spec,修改datas字段:
datas = [('/实际路径/pi3d/shaders', 'pi3d/shaders')]
  1. 用spec文件重新打包:
pyinstaller PictureFrame2020.spec

3. 处理libGLX警告(Linux环境)

如果运行时出现libGLX needs to be available警告,安装系统依赖包即可消除:

sudo apt install libgl1-mesa-glx

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 03:15:46