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


Posted in Python onAugust 23, 2019

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现数通设备tftp备份配置文件示例
Apr 02 Python
基于Python __dict__与dir()的区别详解
Oct 30 Python
Python实现采用进度条实时显示处理进度的方法
Dec 19 Python
Python登录注册验证功能实现
Jun 18 Python
Python实现数据结构线性链表(单链表)算法示例
May 04 Python
简单了解Python3 bytes和str类型的区别和联系
Dec 19 Python
python实现的Iou与Giou代码
Jan 18 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
Python + opencv对拍照得到的图片进行背景去除的实现方法
Nov 18 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 Python
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
Jun 13 Python
asyncio异步编程之Task对象详解
Mar 13 Python
python如何保证输入键入数字的方法
Aug 23 #Python
对python while循环和双重循环的实例详解
Aug 23 #Python
python 进程 进程池 进程间通信实现解析
Aug 23 #Python
python实现的生成word文档功能示例
Aug 23 #Python
Python实现微信中找回好友、群聊用户撤回的消息功能示例
Aug 23 #Python
详解Matplotlib绘图之属性设置
Aug 23 #Python
python3.6生成器yield用法实例分析
Aug 23 #Python
You might like
深入PHP数据缓存的使用说明
2013/05/10 PHP
php微信公众号开发之音乐信息
2018/10/20 PHP
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
JavaScript中用sort()方法对数组元素进行排序的操作
2015/06/09 Javascript
在JavaScript中使用JSON数据
2016/02/15 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
js轮播图代码分享
2016/07/14 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
angularjs中的$eval方法详解
2017/04/24 Javascript
Vue计算属性的使用
2017/08/04 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
Layer弹出层动态获取数据的方法
2018/08/20 Javascript
vue组件文档(.md)中如何自动导入示例(.vue)详解
2019/01/25 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
python中的线程threading.Thread()使用详解
2019/12/17 Python
python保存log日志,实现用log日志画图
2019/12/24 Python
python实现简单颜色识别程序
2020/02/19 Python
python nohup 实现远程运行不宕机操作
2020/04/16 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
python查询MySQL将数据写入Excel
2020/10/29 Python
2014年情人节活动方案
2014/02/16 职场文书
《学会待客》教学反思
2014/02/22 职场文书
企业管理毕业生求职信
2014/03/11 职场文书
八荣八耻的活动方案
2014/08/16 职场文书
校车司机安全责任书
2015/05/11 职场文书
公司周年庆典致辞
2015/07/30 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
mysql 排序失效
2022/05/20 MySQL