使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件及出现问题解决方法
下面看下通过Pyinstaller打包Pygame库写的小游戏程序出现的问题解决方法
# -基于Python的Pygame库的GUI游戏
游戏内容是通过飞船发射子弹来射击外星人
空格键为开火,左右方向键移动,并设立了
不同关卡。
使用说明:
开发环境,游戏直接运行alien_invasion.exe即可,也可在具有Python3环境下运行alien_invasion.py
练习环境:
Python:3.5.4 64位
pyinstall:3.3.1
pyinstall使用:
pyinstaller -F demo.py
参数 含义
-F 指定打包后只生成一个exe格式的文件
-D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)
-c –console, –nowindowed 使用控制台,无界面(默认选项)
-w –windowed, –noconsole 使用窗口,无控制台
-p 添加搜索路径,让其找到对应的库。
-i 改变生成程序的icon图标
打包注意事项:
1.打包有2种方式:
- 第一种是使用'-F'打包成单一的可执行文件,如alien_invasion.exe,此项目需要将
- images文件夹放置在与其同一目录下;
- 第二种是默认使用'-D'方式,(但是我打包完成后无法运行,打包时经常出现“hidden import “pygame._view”not found”)
2.打包的文件与《Python编程:从入门到实践》练习的项目文件有所差异,具体为
button.py与scoreboard.py中的字体做了改动,由
'pygame.font.SysFont(None, 48)'=>'pygame.font.SysFont('arial', 36)'
3.使用pyinstaller打包时,不会自动包含图片文件,所以最简单的方式是打包后将图片放在运行程序的
相应路径下。
!!!打包完毕后一定要讲你的素材images放在exe目录里面,以便exe文件能够链接到你的素材。
PS:指定dist生成目录路径(而不是命令行当前目录)
pyinstaller -F E:/*/*/*.py --distpath=E:*/*/*/dist
接着介绍下使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件的方法。
一、安装Pyinstaller
环境:python3.6、window10
注意事项:
- python64位版本打包的exe,只能在64位操作系统使用
- 打包文件夹和文件的名称不能用中文
- pygame打包是里面的字体要改成"arial"格式。 pygame.font.SysFont("宋体", 32) 32) 换成 pygame.font.SysFont('arial',32)
1、直接安装
pip命令安装:pip install Pyinstaller
安装成功后会提示如下图所示
2、Anaconda环境下安装
如果是在Anaconda环境下直接打包,可能会将其中大部分扩展都打包进去了,造成打包后的exe文件过大,为此有以下解决方案(如果未出现此问题的同学请跳过)。
- 建立虚拟环境 :pipenv install
- 进入虚拟环境:pipenv shell
- 安装所需模块 pip install pygame
- 打包的模块也要安装 pip install pyinstaller
本人在C:/Users/EDZ/目录中新建Pyinstaller文件,首先进入目录,建立虚拟环境,进入虚拟环境,最后安装程序所需的安装模块以及pyinstaller。具体过程如图所示:
二、使用Pyinstaller打包生成exe文件
将要打包的py文件放入所创建的C:\Users\EDZ\Pyinstaller目录中,将自定义程序图标ico文件,也一同放进程序所在目录程序。
介绍一下 Pyinstaller 常用的参数用法:
- -F: 表示生成单个可执行文件
- -D:表示打包多个文件,在dist中生成很多依赖文件,
- -w:指定生成 GUI 软件,表示去掉控制台窗口
- -i <Icon File>: 指定打包后可执行文件的图标
命令:pyinstaller -F -w -i snaker.ico retro_snaker.py
稍微等待后,如果成功则会提示successfully,如图所示:
三、运行生成的exe文件
打包完成后,exe程序将会产生在打包目录的dist文件中。
如图所示:
那么我们就可以打开并运行你所打包的exe文件了
四、exe文件运行中的问题
缺少MSVisualC++ 2015动态库
打开程序,报错提示:无法定位程序输入点ucrtbase.terminate
于动态链接库api-ms-win-crt-runtime-l1-1-0.dll
上,如图所示:
解决方案:安装: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
总结
以上所述是小编给大家介绍的使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关文章
Python多进程multiprocessing.Pool类详解
这篇文章主要为大家详细介绍了Python多进程multiprocessing.Pool类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2018-04-04
最新评论