一、安装pyinstaller
安装参考:https://pyinstaller.readthedocs.io/en/stable/installation.html
用以上方法我最终失败了,所以我查找资料尝试了以下方法:
这里有个问题就是当你直接输入pip install pyinstaller时会弹出
Preparing wheel metadata … error
这个错误,这里的原因是缺少了一个wheel文件
解决办法
先安装wheel
pip install wheel -i https://pypi.tuna.tsinghua.edu.cn/simple
安装完成后,再次安装Pyinstaller
pip install Pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
原文链接:https://blog.csdn.net/crazy_kismet/article/details/103738158
二、安装pypiwin32
三、实行单个文件转换
用管理员权限运行命令行并cd到.py文件所到文件处,利用pyinstaller -F 文件名.py运行
运行结束后在当前文件夹会出现几个文件夹,在dist文件中就会出现exe文件,直接运行即可
运行后一般会先弹出来一个控制台,看文档说可以-w去除控制台,本人尝试失败,原因未知,但也还行
四、实行多个文件转换
在查找多处资料后找到以下方法:
1.按照单个文件的实行方法运行主文件,我这里是main.py
2.打开后缀名为.spec 的文件,将其他py文件和非py文件路径加进去
3.命令行执行,记住是***管理员命令行***,pyinstaller -F main.spec
然后在dist文件夹里就会出现一个以main为名的文件夹,里面就是各种文件,里面的很多东西都没有用,这是因为pyinstaller把所有电脑里已存在的包都导入进来了,往下滑就会看到与文件夹同名的exe文件,双击运行即可
五、问题
很主要的一个问题,这也是导致我最开始实行多个文件时失败:
音频格式和音频的名字
pygame里面调用音频主要是两个函数:
#背景音乐
pygame.mixer.music.load()#可以加载MP3, WAV,OGG, MIDI格式
#游戏音效
sound = pygame.mixer.Sound()#可以加载MP3, WAV, OGG格式
我最开始的代码用的.ogg格式的背景音乐以及.wav格式的游戏音效,所以正常运行是没有错,但转换为exe之后一直提示错误。但我并不知道错误出现在音频上,然后我就把所有类全部整合进了一个plane.py文件中,运行还是错误,然后我就发现了音频的问题,开始了爆改代码之路:
1.去掉所有音频,最终转化成功,飞机大战1.0诞生
2.在游戏结束后加入分数展示,飞机大战2.0诞生
3.两个格式的音频分开加入,最终.wav播放成功,飞机大战3.0诞生
4.将背景音乐转化为.wav格式加入,成功播放,至此还原代码实行效果,飞机大战4.0诞生