详解使用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 相关文章推荐
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Python找出文件中使用率最高的汉字实例详解
Jun 03 Python
Python处理菜单消息操作示例【基于win32ui模块】
May 09 Python
详解Python的数据库操作(pymysql)
Apr 04 Python
Python将主机名转换为IP地址的方法
Aug 14 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
基于numpy中的expand_dims函数用法
Dec 18 Python
python异常处理和日志处理方式
Dec 24 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
使用OpenCV对车道进行实时检测的实现示例代码
Jun 19 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 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下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php获取根域名方法汇总
2014/10/28 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
JS 日期比较大小的简单实例
2014/01/13 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
2014/08/16 Javascript
JavaScript中的Object对象学习教程
2016/05/20 Javascript
详解如何使用vue-cli脚手架搭建Vue.js项目
2017/05/19 Javascript
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
浅谈JsonObject中的key-value数据解析排序问题
2017/12/06 Javascript
vue+webpack实现异步加载三种用法示例详解
2018/04/24 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
2019/02/20 jQuery
vue如何获取自定义元素属性参数值的方法
2019/05/14 Javascript
vue 基于abstract 路由模式 实现页面内嵌的示例代码
2020/12/14 Vue.js
[52:20]DOTA2-DPC中国联赛正赛 SAG vs XGBO3 第一场 3月5日
2021/03/11 DOTA
python中随机函数random用法实例
2015/04/30 Python
Python使用剪切板的方法
2017/06/06 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
HTML5+CSS3实现机器猫
2016/10/17 HTML / CSS
Fnac西班牙官网:法国文化和电子产品零售商
2021/03/14 全球购物
简历自我评价模版
2014/01/31 职场文书
电力公司个人求职信范文
2014/02/04 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
师德师风事迹材料
2014/12/20 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2015年派出所工作总结
2015/04/24 职场文书
Vue3实现简易音乐播放器组件
2022/08/14 Vue.js