Python——pgzero游戏打包exe执行时报错

Python——pgzero游戏打包exe执行时报错

记录一次使用 pgzero 开发游戏,使用 pyinstaller 打包时报错

目录结构:
在这里插入图片描述

1. 第一次报错

打包指令:

pyinstaller -Fw .\code.py

结果打开报错

报错如下:

Traceback (most recent call last):
  File "code.py", line 1, in <module>
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "PyInstaller\loader\pyimod03_importers.py", line 495, in exec_module
  File "pgzrun.py", line 23, in <module>
  File "pgzero\runner.py", line 106, in prepare_mod
  File "pgzero\game.py", line 92, in show_default_icon
  File "pkgutil.py", line 637, in get_data
  File "PyInstaller\loader\pyimod03_importers.py", line 344, in get_data
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\XXX\\AppData\\Local\\Temp\\_MEI218762\\pgzero\\data\\icon.png'

在这里插入图片描述

根据报错信息,可以知道报错原因是没有找到这个图片,而我没有引入这个过这个图片,所以根据报错提示 File "pgzero\game.py", line 92, in show_default_icon ,猜测是这个文件出了问题

2. 第二次报错

在 python 的第三方包目录中找到 "pgzero\game.py",查看第92行代码
在这里插入图片描述
这里确实引入了一个文件,所以我把这两行注释掉再重新打包

在这里插入图片描述

在这里插入图片描述

结果还是报错,好的是游戏窗口已经出来了

在这里插入图片描述

3. 解决问题

这次猜测是因为打包时没有引入文件,所以我在打包指令中添加了引入文件的选项

pyinstaller -Fw --add-data ".\images\*;.\images" --add-data ".\music\*;.\music"  .\code.py  

选项意思是:添加数据,将 相对路径下 images 文件夹中的所有文件 添加到 exe文件中的 images 文件夹中

总结

问题主要是因为资源没有引入

  • 第一步是在 "pgzero\game.py" 中注释代码,以防引入默认图标
  • 第二步是在打包时添加游戏需要的资源

相关推荐

  1. Python程序打包exe执行文件说明

    2024-03-18 14:32:02       49 阅读
  2. Python防止打包后的exe重复执行

    2024-03-18 14:32:02       34 阅读
  3. Vue 打包或运行时报Error: error:0308010C

    2024-03-18 14:32:02       209 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-18 14:32:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-18 14:32:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-18 14:32:02       87 阅读
  4. Python语言-面向对象

    2024-03-18 14:32:02       96 阅读

热门阅读

  1. Git ignore: 忽略与清除

    2024-03-18 14:32:02       43 阅读
  2. 编程语言的生态系统

    2024-03-18 14:32:02       39 阅读
  3. 2024/3/17 TCP的进程和线程通信,模拟面试总结

    2024-03-18 14:32:02       40 阅读
  4. python实现数据可视化大屏

    2024-03-18 14:32:02       37 阅读
  5. Redis常见面试题--基础篇

    2024-03-18 14:32:02       36 阅读
  6. 使用Python和Wireshark进行数据包分析:简易指南

    2024-03-18 14:32:02       43 阅读
  7. 软考高级,高项和架构哪个更容易?

    2024-03-18 14:32:02       44 阅读
  8. HarmonyOS 鸿蒙 arkts 自定义组件插槽

    2024-03-18 14:32:02       34 阅读