1、前面的打包步骤和网上大部分描述一样,首先下载安装cxfreeze,我用的是安装包的方式,当然你们也可以使用pip install的方式安装,下载地址:https://pypi.org/project/cx-Freeze/4.3.3/#files,根据自己的python版本选择合适的版本进行下载,否则会后边build会失败,我的是python2.7.13,所以我下载的版本如下图。
2、下载完成后双击进行安装,安装完成后,在cmd窗口切换到C:\Python27\Scripts目录(我的python安装在C:\Python27下),然后使用cxfreeze -h查看是否安装成功,如果出现以下信息说明安装成功
3、如果出现cxfreeze不是系统命令等提示,试着执行python cxfreeze-postinstall,执行完成后你会发现C:\Python27\Scripts目录下多出几个bat文件,此时重新执行cxfreeze -h命令即可正常显示cxfreeze相关信息(如果还是不行试着重新打开cmd命令窗口,我的是这样就好了的),当然前提是你的cxfreeze是和你的python是在同一个路径下,否则需要修改配置文件中的相关路径,比较麻烦,具体可以参考这个作者的博客https://www.jianshu.com/p/e47d9be6fa96。
4、接下来就是进行生成exe文件了,网上大部分都说的很简单,大概是人家的都很顺利,我在这块遇到一个错误,卡了好久。正常流程的话,直接执行cxfreeze D:\tsc_sample\main_screen.py --target-dir D:\tsc_sample\dist
其中:
D:\tsc_sample\main_screen.py 是要打包的主文件
--target-dir D:\tsc_sample\dist 是打包后的程序路径
我在这块执行的时候总是报以下错误:
尝试了多种方法,还试过直接双击cxfreeze-quickstart.bat这种方式(可参照https://blog.csdn.net/dugushangliang/article/details/81740340),结果都不行,简直要崩溃了。偶然发现了在后边增加--no-copy-deps参数的方式,据说是针对当引入外部包比较多的时候,并且希望只生成一个.exe文件的时候使用的,我抱着试试的态度,结果竟然就成功了。。。我猜测可能是我的项目依赖的包比较多,直接build可能会由于缺少相关包而失败。
如果有遇到跟我相同问题的同学希望这篇文章会帮到你们。