利用cx_freeze打包Python3+PyQt5程序

#利用cx_freeze打包Python3+PyQt5程序

将Python程序编译成exe,目前网上主要有3种方法

  • py2exe
  • pyinstaller
  • cx_freeze

据说py2exe最有名,但是打包的程序最大。pyinstaller打包效果最好,但是也作为麻烦。我使用的机器环境是win10 64位+32位的Python3,因此无法使用只支持Python2的py2exe。使用pyinstaller又出现了很多问题,总之无法实现编译。所以最后还是采用了cx_freeze。

使用cx_freeze之前,首先进行安装。可以上cx_freeze的官网去直接下载。
官网地址:http://sourceforge.net/projects/cx-freeze/files/ 安装官网说明方法安装即可

我因为已经安装了pip3,所以使用pip一键安装。
安装命令

pip3 install cx_freeze

安装完以后,进入到自己的Python3安装目录,利用命令行进入script文件夹。可以看到存在cx_freeze的相关安装文件

cxfreeze-postinstall
cxfreeze-quickstart
cxfreeze

但是却并没有网上说的cxfreeze.bat文件。此时,需要利用Python运行cxfreeze-postinstall文件,才会出现相应安装后的批处理文件。

python cxfreeze-postinstall

运行完毕后,就可以运行相关命令看安装是否成功

cxfreeze -h

显示出帮助命令就表示安装成功。

利用cxfreeze打包Python程序语法如下

cxfreeze 编写的Python程序的入口文件 --target-dir 目标程序所在文件夹

–target-dir命令是指定目标文件家的命令
但要注意,如果这样打包GUI程序,会在程序运行时出现运行命令提示符的黑框

因为自己是编译的PyQt5程序,所以如果要打包的时候没有黑框,应该使用如下打包命令

cxfreeze 编写的Python程序的入口文件 --target-dir 目标程序所在文件夹 --base-name=Win32GUI

这就是我打包出来的结果:
利用cx_freeze打包Python3+PyQt5程序_第1张图片

程序运行结果:
利用cx_freeze打包Python3+PyQt5程序_第2张图片

OK!打包完毕!

  • 但是我也发现存在一定问题。利用cxfreeze打包pyqt程序,生成的软件体积太大。我只是编写的一个自定义浏览器程序,打包完以后230M左右。打包文件中可以看到,PyQt部分所占体积最大,所有的PyQt模块都被导入进目标文件夹。所以可能还要研究怎么样才能实现精简打包,或是再压缩一下体积。

你可能感兴趣的:(PyQt,python,pyqt)