详解使用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字典get()方法用法分析
Apr 17 Python
详解Python中time()方法的使用的教程
May 22 Python
numpy matrix和array的乘和加实例
Jun 28 Python
python os.listdir按文件存取时间顺序列出目录的实例
Oct 21 Python
pandas DataFrame 删除重复的行的实现方法
Jan 29 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
Python搭建代理IP池实现获取IP的方法
Oct 27 Python
关于Python中定制类的比较运算实例
Dec 19 Python
Python模块的定义,模块的导入,__name__用法实例分析
Jan 07 Python
python 日志模块 日志等级设置失效的解决方案
May 26 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
python利用递归方法实现求集合的幂集
Sep 07 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简单实现加减乘除计算器
2014/01/06 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
mysql查找删除重复数据并只保留一条实例详解
2016/09/24 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
JS、CSS加载中的小问题探讨
2013/11/26 Javascript
JavaScript动态提示输入框输入字数的方法
2015/07/27 Javascript
JavaScript开发者必备的10个Sublime Text插件
2016/02/27 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
2016/05/21 Javascript
node.js cookie-parser之parser.js
2016/06/06 Javascript
浅谈JS继承_寄生式继承 &amp; 寄生组合式继承
2016/08/16 Javascript
nodejs个人博客开发第二步 入口文件
2017/04/12 NodeJs
67 个节约开发时间的前端开发者的工具、库和资源
2017/09/12 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[13:40]TI3青蛙君全程回顾 DOTA2我们为梦想再战
2013/09/13 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
django序列化时使用外键的真实值操作
2020/07/15 Python
零基础学Python之前需要学c语言吗
2020/07/21 Python
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
结构工程个人自荐信范文
2013/11/30 职场文书
往来会计岗位职责
2013/12/19 职场文书
优秀大学生的自我评价
2014/01/16 职场文书
地理教师岗位职责
2014/03/16 职场文书
社区反邪教工作方案
2014/06/16 职场文书
财务总监岗位职责
2015/02/03 职场文书
2015新学期家长寄语
2015/02/26 职场文书
幼儿园辞职信
2015/05/13 职场文书
PostGIS的安装与入门使用指南
2022/01/18 PostgreSQL