Pygame使用pyinstaller打包exe以及停止工作问题

前几天在某老师傅的引导下做了2048小游戏,想发给室友玩,但她们没安装python环境,谷歌了下,python脚本可以打包成exe,实际步骤很简单,但过程中的问题千奇百怪。。。花了一天,终于可以在室友电脑上运行了。
这里写图片描述
首先说一下打包过程:
1.下载pyinstaller(一个用来打包程序的模块),(可以在官网下载,然后安装,)我就直接在anaconda,运行cmd,输入pip pyinstaller,安装了。(可以 pip list查看是否安装成功)
2.将py文件放进一个文件夹,cmd进入这个文件夹,pyinstaller -w dd.py(dd.py是我的脚本文件)
Pygame使用pyinstaller打包exe以及停止工作问题_第1张图片
。。。
Pygame使用pyinstaller打包exe以及停止工作问题_第2张图片
3.看到successfully是不是很兴奋,如果正常的话,接下来,打开前面那个项目文件夹,生成有一个dist文件夹,进去找到.exe执行文件双击即可。

当然了,一般不会这么顺利。。。。接下来说说我遇到的也算是解决了的问题。

1.我的环境是pycharm+anaconda3,因为写2048需要的numpy库anaconda3(集合了很多库,很方便)自带了,pygame库是后面pip装在anaconda3里的,pycharm用的就是anaconda3的python.exe,同样我打包2048这个游戏也应该是和anaconda有关。
但我原来还有个Python3.5的IDLE,所以在打包过程中,默认就用原来的这个了,搜了下,发现这个
http://blog.csdn.net/hduxiejun/article/details/53168127
以为加个路径就可以了吧,结果还是不行,各种报错,说路径找不到文件什么的,然后路径加了引号,还是报错,import error,仔细看了打包过程,说anaconda3的numpy的multiarray不能引入。。。(可是这是anaconda自带的啊。。难道是我安装有问题?)
所以为了最简单解决以上问题,我干脆把原来的IDLE删了,anaconda3也重新安装,pycharm重新导入anaconda的exe。

2.接下来的问题是可以生成exe但是停止工作。谷歌了很多,快要放弃的时候看到了这个小姐姐写的
http://blog.csdn.net/sinat_37185987/article/details/78634190
,抱着最后试一次的沉重心情,把文件的字体从None改成了’arial’,又打包了一次,结果成功了,很激动,感谢这位小姐姐~~~
原因就是打包后的exe找不到字体资源,所以就出错了。

3.pyinstaller dd.py,不加参数时,执行后先生成一个黑框框,然后才是游戏界面,这个只用加个-w,就可以。
Pygame使用pyinstaller打包exe以及停止工作问题_第3张图片

4.我只发exe文件给室友玩还打不开,如果3.中没有-w,保留了黑框框,即命令行窗口,就会一闪而过,加了-w,发给室友还是会报错,如下:
Pygame使用pyinstaller打包exe以及停止工作问题_第4张图片
印象中python36.dll在cmd打包过程中看到过,我发现它和exe文件放在一个文件夹里,就是dist里,就把整个文件发给室友了,再打开里面的exe,就ok,不过有大小有100M。。。

收工~

你可能感兴趣的:(python)