在python3.6环境下使用cxfreeze打包程序

环境:python3.6

打包程序:aliens_invasion

    原本想使用pyintaller 进行打包,使用pip的安装过程也没有问题,打包过程也没有显示任何错误


但最终生成的exe文件以及资源文件齐全的情况下,仍然无法运行:

在python3.6环境下使用cxfreeze打包程序_第1张图片

后面通过visual studio的调试,发现是font的问题,于是我百度了有关说法,也有大佬说跟font没关系,是资源的相对路径有问题......终于到最后失去了耐心的我换了cxfreeze模块进行打包。


cx_Freeze模块的安装:

我所使用的是win10系统,首先在开始菜单里找到命令提示符

在python3.6环境下使用cxfreeze打包程序_第2张图片

win10系统比较方便,直接在地下的搜索栏输入cmd即可,打开命令提示符后使用pip命令进行安装,

注意:python3自带了pip模块,而python2需要手动安装pip,具体不详细解释

cxfreeze命令对应的模块是cx_Freeze,我们在命令行敲入pip install cx_Freeze


安装完毕后有可能会提示cxfreeze不是内部或外部命令,这个我们可以通过编写一个bat文件解决

注:该方法来自知乎大佬:

https://www.zhihu.com/question/41211581

以下是原文:

在cxfreeze的安装目录下即\Python34\Scripts,添加一个文件cxfreeze.bat(可用记事本)
cxfreeze.bat内容如下:
@ echo off
C:\Python34\python.exe C:\Python34\Scripts\cxfreeze %*
即可解决上述问题,在该目录下输入czfreeze -h也可以查看安装情况(用pip install cxfreeze就可直接安装改第三方库)

我的是python 3.6环境,首先找到相应的python模块的路径
在python3.6环境下使用cxfreeze打包程序_第3张图片

中建立一个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 命令查看帮助信息:

在python3.6环境下使用cxfreeze打包程序_第4张图片

cxfreeze命令的使用:

首先在命令提示符中使用cd命令转换到所需要转换的python文件的目录中,因为转换后的dist文件夹会出现在命令提示符的当前目录中



我们需要根据


来设置需要转换的文件的路径:(--init-script=后接绝对路径)

这里输入:

cxfreeze --init-script=C:\Users\tangc\Desktop\alien_invasion\alien_invasion.py alien_invasion.py

然后回车

在python3.6环境下使用cxfreeze打包程序_第5张图片

一大串信息后成功,在文件夹中也出现了dist目录:

在python3.6环境下使用cxfreeze打包程序_第6张图片

注意:如果你的程序中有图片等资源,是需要根据程序中的相对路径加入到dist文件中的

我打包的是

这个主程序,而我的图片文件夹在它的同一目录下,所以在dist文件夹中:

在python3.6环境下使用cxfreeze打包程序_第7张图片

也要在.exe同目录中加入images的文件夹(图片资源)

在python3.6环境下使用cxfreeze打包程序_第8张图片

双击.exe文件,运行成功!

在python3.6环境下使用cxfreeze打包程序_第9张图片

你可能感兴趣的:(study)