详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件

作者:lihua979203269 时间:2023-11-10 13:20:31 

一、安装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

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

标签:PyInstaller,Pygame,exe
0
投稿

猜你喜欢

  • Python中赋值运算符的含义与使用方法

    2022-05-21 12:13:45
  • Python学习笔记之变量与转义符

    2022-12-20 23:21:18
  • 基于python调用psutil模块过程解析

    2022-04-09 18:22:56
  • Request.ServerVariables应用实例

    2008-03-11 11:57:00
  • Javascript浅拷贝与深拷贝实现

    2013-07-16 22:47:46
  • Vue.js实现一个自定义分页组件vue-paginaiton

    2024-05-02 16:36:36
  • 简单谈谈php延迟静态绑定

    2024-06-05 15:42:33
  • Python 3.6 -win64环境安装PIL模块的教程

    2021-10-30 11:02:31
  • python文件读取失败怎么处理

    2023-05-06 17:14:46
  • Python中的十大图像处理工具(小结)

    2021-02-04 09:17:51
  • python seaborn heatmap可视化相关性矩阵实例

    2022-02-08 13:12:30
  • asp dictionary对象的用法

    2011-04-14 11:09:00
  • 详解Python多线程Selenium跨浏览器测试

    2023-05-05 08:10:11
  • Python中层次聚类的详细讲解

    2022-07-02 06:07:13
  • Vue.2.0.5过渡效果使用技巧

    2024-04-10 10:33:12
  • python通过tcp发送xml报文的方法

    2021-02-18 08:34:25
  • python 匹配url中是否存在IP地址的方法

    2023-04-13 14:29:08
  • 带你深入了解MySQL语句优化的基本原则

    2008-11-27 17:00:00
  • 带你彻底搞懂python操作mysql数据库(cursor游标讲解)

    2024-01-25 21:53:58
  • 详解python使用Nginx和uWSGI来运行Python应用

    2023-07-25 20:40:55
  • asp之家 网络编程 m.aspxhome.com