详解使用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处理文本文件并生成指定格式的文件
Jul 31 Python
python实现数独算法实例
Jun 09 Python
浅谈Python的文件类型
May 30 Python
Python实现的科学计算器功能示例
Aug 04 Python
Python实现的多线程同步与互斥锁功能示例
Nov 30 Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
django rest framework vue 实现用户登录详解
Jul 29 Python
python异常处理之try finally不报错的原因
May 18 Python
python 模拟登录B站的示例代码
Dec 15 Python
利用python实现汉诺塔游戏
Mar 01 Python
python状态机transitions库详解
Jun 02 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 中使用随机数的三个步骤
2006/10/09 PHP
PHP命名空间(Namespace)简明教程
2014/06/11 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
php英文单词统计器
2016/06/23 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
jquery使用remove()方法删除指定class子元素
2015/03/26 Javascript
js中函数声明与函数表达式
2015/06/03 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
input file上传 图片预览功能实例代码
2016/10/25 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
用node-webkit把web应用打包成桌面应用(windows环境)
2018/02/01 Javascript
详解React-Router中Url参数改变页面不刷新的解决办法
2018/05/08 Javascript
理解Python中的With语句
2016/03/18 Python
Python教程之全局变量用法
2016/06/27 Python
flask中使用蓝图将路由分开写在不同文件实例解析
2018/01/19 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
python内存动态分配过程详解
2019/07/15 Python
python logging 重复写日志问题解决办法详解
2020/08/04 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
小学生学习感言
2014/03/10 职场文书
大学学雷锋活动总结
2014/06/26 职场文书
软件工程毕业生自荐信
2014/07/04 职场文书
2014年医德医风工作总结
2014/11/13 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL