环境:python3.6
打包程序:aliens_invasion
原本想使用pyintaller 进行打包,使用pip的安装过程也没有问题,打包过程也没有显示任何错误
但最终生成的exe文件以及资源文件齐全的情况下,仍然无法运行:
后面通过visual studio的调试,发现是font的问题,于是我百度了有关说法,也有大佬说跟font没关系,是资源的相对路径有问题......终于到最后失去了耐心的我换了cxfreeze模块进行打包。
cx_Freeze模块的安装:
我所使用的是win10系统,首先在开始菜单里找到命令提示符
win10系统比较方便,直接在地下的搜索栏输入cmd即可,打开命令提示符后使用pip命令进行安装,
注意:python3自带了pip模块,而python2需要手动安装pip,具体不详细解释
cxfreeze命令对应的模块是cx_Freeze,我们在命令行敲入pip install cx_Freeze
安装完毕后有可能会提示cxfreeze不是内部或外部命令,这个我们可以通过编写一个bat文件解决
注:该方法来自知乎大佬:
https://www.zhihu.com/question/41211581
以下是原文:
cxfreeze.bat内容如下:
@ echo off
C:\Python34\python.exe C:\Python34\Scripts\cxfreeze %*
即可解决上述问题,在该目录下输入czfreeze -h也可以查看安装情况(用pip install cxfreeze就可直接安装改第三方库)
我的是python 3.6环境,首先找到相应的python模块的路径
在
中建立一个cxfreeze.txt文件,然后在文件中写入:
@ echo off
你的python路径\python.exe 你的python路径\Scripts\cxfreeze %*
然后将文件的后缀改为bat即可,有些系统没有显示后缀的可以自行去百度上查找显示后缀的方法,
一般是在文件的查看选项中去掉隐藏属性的选项
例:
我的python路径是E:\extrasoftware\python3
所以我写入了@ echo off
E:\extrasoftware\python3\python.exe E:\extrasoftware\python3\Scripts\cxfreeze %*
之后果然正常了
可以使用cxfreeze -h 命令查看帮助信息:
cxfreeze命令的使用:
首先在命令提示符中使用cd命令转换到所需要转换的python文件的目录中,因为转换后的dist文件夹会出现在命令提示符的当前目录中我们需要根据
来设置需要转换的文件的路径:(--init-script=后接绝对路径)
这里输入:
cxfreeze --init-script=C:\Users\tangc\Desktop\alien_invasion\alien_invasion.py alien_invasion.py
然后回车
一大串信息后成功,在文件夹中也出现了dist目录:
注意:如果你的程序中有图片等资源,是需要根据程序中的相对路径加入到dist文件中的
我打包的是
这个主程序,而我的图片文件夹在它的同一目录下,所以在dist文件夹中:
也要在.exe同目录中加入images的文件夹(图片资源)
双击.exe文件,运行成功!