使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

作者:lihua979203269 时间:2021-09-17 08:53:15 

下面看下通过Pyinstaller打包Pygame库写的小游戏程序出现的问题解决方法

# -基于Python的Pygame库的GUI游戏

游戏内容是通过飞船发射 * 来射击外星人
空格键为开火,左右方向键移动,并设立了
不同关卡。

使用说明:

开发环境,游戏直接运行alien_invasion.exe即可,也可在具有Python3环境下运行alien_invasion.py

练习环境:

Python:3.5.4 64位
pyinstall:3.3.1
pyinstall使用:
pyinstaller -F demo.py
参数  含义
-F  指定打包后只生成一个exe格式的文件
-D  –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c  –console, –nowindowed 使用控制台, * 面(默认选项)
-w  –windowed, –noconsole 使用窗口,无控制台
-p  添加搜索路径,让其找到对应的库。
-i  改变生成程序的icon图标

打包注意事项:

1.打包有2种方式:

  •     第一种是使用'-F'打包成单一的可执行文件,如alien_invasion.exe,此项目需要将

  •       images文件夹放置在与其同一目录下;

  •     第二种是默认使用'-D'方式,(但是我打包完成后无法运行,打包时经常出现“hidden import “pygame._view”not found”)

2.打包的文件与《Python编程:从入门到实践》练习的项目文件有所差异,具体为
   button.py与scoreboard.py中的字体做了改动,由
        'pygame.font.SysFont(None, 48)'=>'pygame.font.SysFont('arial', 36)'

3.使用pyinstaller打包时,不会自动包含图片文件,所以最简单的方式是打包后将图片放在运行程序的
  相应路径下。

!!!打包完毕后一定要讲你的素材images放在exe目录里面,以便exe文件能够链接到你的素材。

PS:指定dist生成目录路径(而不是命令行当前目录)

pyinstaller -F E:/*/*/*.py --distpath=E:*/*/*/dist

接着介绍下使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件的方法。

一、安装Pyinstaller

环境:python3.6、window10

注意事项:

  • python64位版本打包的exe,只能在64位操作系统使用

  • 打包文件夹和文件的名称不能用中文

  • pygame打包是里面的字体要改成"arial"格式。 pygame.font.SysFont("宋体", 32) 32)  换成 pygame.font.SysFont('arial',32)

1、直接安装

pip命令安装:pip install Pyinstaller

安装成功后会提示如下图所示

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

2、Anaconda环境下安装

如果是在Anaconda环境下直接打包,可能会将其中大部分扩展都打包进去了,造成打包后的exe文件过大,为此有以下解决方案(如果未出现此问题的同学请跳过)。

  • 建立虚拟环境 :pipenv install

  • 进入虚拟环境:pipenv shell

  • 安装所需模块 pip install pygame

  • 打包的模块也要安装 pip install pyinstaller

本人在C:/Users/EDZ/目录中新建Pyinstaller文件,首先进入目录,建立虚拟环境,进入虚拟环境,最后安装程序所需的安装模块以及pyinstaller。具体过程如图所示:

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

二、使用Pyinstaller打包生成exe文件

将要打包的py文件放入所创建的C:\Users\EDZ\Pyinstaller目录中,将自定义程序图标ico文件,也一同放进程序所在目录程序。

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

介绍一下 Pyinstaller 常用的参数用法:

  • -F: 表示生成单个可执行文件

  • -D:表示打包多个文件,在dist中生成很多依赖文件,

  • -w:指定生成 GUI 软件,表示去掉控制台窗口

  • -i <Icon File>: 指定打包后可执行文件的图标

命令:pyinstaller -F -w -i snaker.ico retro_snaker.py

稍微等待后,如果成功则会提示successfully,如图所示:

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

三、运行生成的exe文件

打包完成后,exe程序将会产生在打包目录的dist文件中。

如图所示:

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

那么我们就可以打开并运行你所打包的exe文件了

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

四、exe文件运行中的问题 

缺少MSVisualC++ 2015动态库

打开程序,报错提示:无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-l1-1-0.dll上,如图所示:

使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法

 解决方案:安装:Visual C++ Redistributable for Visual Studio 2015

注:下载对应版本安装
微软官网:https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145

安装后重启下电脑

若还不行,尝试安装下这个补丁:KB2999226

微软官网:https://www.microsoft.com/en-us/download/details.aspx?id=49093

总结

以上所述是小编给大家介绍的使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://blog.csdn.net/m0_37960338/article/details/96440048

标签:PyInstaller,Pygame,exe
0
投稿

猜你喜欢

  • Python 网页请求之requests库的使用详解

    2021-01-30 23:42:06
  • Python函数式编程实现登录注册功能

    2022-02-16 14:03:31
  • python之pygame模块实现飞机大战完整代码

    2023-08-31 12:10:01
  • python开发简单的命令行工具简介

    2021-01-06 14:39:20
  • 详解Go语言变量作用域

    2023-08-05 03:25:43
  • python的rllib库你了解吗

    2022-03-16 02:18:15
  • GOLANG版的冒泡排序和快速排序分享

    2023-07-05 05:31:09
  • python读取raw binary图片并提取统计信息的实例

    2023-09-22 12:46:35
  • Python自动生成代码 使用tkinter图形化操作并生成代码框架

    2021-04-26 08:47:30
  • 数据库主键的故事

    2008-05-31 07:50:00
  • 教你如何利用SQL Server保护数据

    2010-06-07 14:18:00
  • 详细了解 MySQL锁机制

    2010-08-08 09:04:00
  • 比较简单的异步加载JS文件的代码

    2009-07-06 13:13:00
  • Python堆排序原理与实现方法详解

    2021-02-22 15:07:31
  • pytorch中可视化之hook钩子

    2021-07-30 04:26:23
  • matplotlib调整子图间距,调整整体空白的方法

    2021-12-17 15:06:58
  • 解决pycharm的Python console不能调试当前程序的问题

    2021-09-08 12:02:42
  • Python3.x+pyqtgraph实现数据可视化教程

    2023-09-25 23:24:47
  • asp如何做一个全面的服务器探测器?

    2010-07-12 18:55:00
  • 写好Python代码的几条重要技巧

    2021-09-16 21:49:47
  • asp之家 网络编程 m.aspxhome.com