在python中比较常用的python转exe方法有三种,分别是cx_freeze,py2exe,PyInstaller。
py2exe恐怕是三者里面知名度最高的一个,但是同时相对来说它的打包质量恐怕也是最差的一个
。pyinstaller打包很好,但是操作工序较为复杂。
将py脚本打包成exe可执行档,有多种好处:最大的一个好处是环境无关性,打包后的exe档可以在未安装python的电脑上运行。
cx_freeze不错,但是好久不更新了,本次所用的是4.3 32bit。
1、py2exe
**

2、pyinstaller

要打包py脚本至exe档,必须先安装pyinstaller

pip install pyinstaller

下面将简介打包的以下几种可实现的功能。
1. 打包成exe档.
2. 打包成带自定义应用图标的exe档.
3. 打包成不带命令行的exe档(带GUI的应用)

1) 打包成exe档
这个很简单,可以找包只有命令行的py, 也可以打包带GUI界面的py.生成的应用图标为默认的图标.
命令为:

  1. pyinstaller -F Happy_moment_thinter.py

python 003 打包EXE - 图1
打包运行后,生成的exe保存在dist下. 其它两个build和pycache文件夹可以del掉.
python 003 打包EXE - 图2python 003 打包EXE - 图3

  1. 打包成带自定义应用图标的exe档, 只是从了-i而已,用定指定应用图标,注:图标格式只能是.ico格式.
    网上有很多生成ico的方法,这里提供一个给大家参考:
    http://www.faviconico.org/
    也可以用专业的制作工具(有30天的试用期)
    https://www.axialis.com/
    命令为:
    1. pyinstaller -F Happy_moment_tkinter.py -i qsbk.ico
    生成的图标如下:
    python 003 打包EXE - 图4
    3. 打包成不带命令行的exe档(带GUI的应用)
    这个要求当前的py运行时是带GUI界面的,网上也有很多人问,说明明打包了,为了每次运行时除了应用主GUI界面外,为何还会显示一个命令行界面呢?
    命令为:
    1. pyinstaller -F Happy_moment_tkinter.py -i qsbk.ico --noconsole(注意,noconsole前是双杠线)
    python 003 打包EXE - 图5
    生成的图标跟上面是一样的,只是不带控制台命令行而已。

    3、cx_freeze

    首先:cx_freeze下载地址:http://sourceforge.net/projects/cx-freeze/files/
    接着,介绍一下cx_freeze的使用方法。
    第一步:检查cx_freeze是否安装正确。
    运行cmd,切换到cxfreeze.bat所在目录,然后执行 “cxfreeze -h” 看看能否出效果
    python 003 打包EXE - 图6
    如果显示帮助信息则表示安装成功;
    image.png
    如果出现以下信息,可能路径不对。
    image.png
    修改路径的办法
    打开你的python安装文件夹,例如我的python安装文件夹在G盘,那么用记事本打开G:\python\Scripts\cxfreeze.bat

获取直接使用Pycharm 引用cx_freeze 即可

第二步:如果安装正确,那么接下来的事情就非常简单了

正式开始打包,命令为:cxfreeze hello.py —target-dir dist

命令解释:hello.py 是你要打包的主文件、启动文件

  1. Dist为要目标文件夹,打包后会生成dist目录,里面就有打包后的可执行文件。

注意:

只能指定一个要打包的模块,也就是启动模块
所有.py文件都不能有中文字符,否则会出现编码异常。
发布后,可执行文件执行路径不能有中文(最好也不要有空格)。
启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果。
if name == “main“:
main()