在学习python的过程中,在IDE编写完成py项目,运行成功想要封装成exe,方便分享给不同的人即使别人没有安装python也可以使用。
封装的过程中遇到一些问题,记录一下,方便自己和他人查阅。
以经典教材的alien_invasion为例。编写完成后,在IDE环境下可以正常运行,使用pyinstall工具封装成exe,在py文件目录下进入cmd,例如E:\Python\Alien_Game>pyinstaller -F -w alien_test.py
在生成中dist文件夹下可以找到生成的exe文件,把依赖文件放入到同一目录下,打开exe出现已停止工作的问题。经摸索发现是因为
self.font=pygame.font.SysFont("none",36) 中默认none的问题,将其改为:
self.font=pygame.font.SysFont("SimHei",36) 解决相关问题。SimHei字体还可正常显示中文字符,防止出现中文乱码的问题。
pyinstall指令参考https://msd.misuland.com/pd/3223833238703184482
查询过程中还发现几个常见问题,整理如下:
1.多文件打包 https://www.cnblogs.com/jackzz/p/9431923.html
2.PyQt5安装有问题,通过pip安装,在一开始封装的过程中,为了方便看到问题,可以采用E:\Python\Alien_Game>pyinstaller -F -c alien_test.py的方式,通过控制台看到错误提示方便定位。
3.有些时候封装import了其他模块,pyinstaller找不到,需要将依赖路径添加上去 ,在指令最后加上-p address
4.生成exe文件注意路径,尽量使用相对路径,而且需要注意依赖文件和exe的相对位置,方便在不同的环境下移植运行。
记录如上,方便你我。