总所周知,python因库多,语法优雅,深受开发者的喜爱。
于我来说,写一些小型程序,在不需要考虑太多问题的时候,python无疑是我的第一选择。而有的时候,虽然是小型程序,但我还是需要他们通用,即使不考虑使他跨平台,但最起码要可以跨电脑吧,不然我去到别的电脑还需要安装python运行环境,在那里运行完后,还得帮别人删除,岂不是太过麻烦,所以,无论是给别人使用,还是自己需要在无python环境的电脑中使用,我们有时需要把python的脚本程序打包成exe。
目前python常用打包工具目前有:
py2exe 下载地址
cxfreeze 下载地址
PyInstaller 下载地址
目前这三款工具只有cxfreeze支持python3的打包,很无奈吧,我也是……
好吧,不说废话了,下面分享一下我自己使用cxfreeze的经验,希望帮助到有需要的朋友。
安装好cxfreeze后,你会发现在python/Script目录下只有cxfreeze,cxfreeze-postinstall,cxfreeze-quickstart,三个文件,无法直接使用。
这时需要你进入命令行到当前目录,输入:
python cxfreeze
用python对cxfreeze进行编译,编译成功后生成cxfreeze.bat文件
随后重启命令行,输入cxfreeze,看看是否提示cxfreeze不是内部程序或命令,如果弹出正常cxfreeze命令的提示,那么恭喜你,cxfreeze算是配置好了,否则需要配置环境变量。
当一切都配置好后,使用cxfreeze打包相应脚本有两种方法。
-
直接利用cxfreeze命令完成
cxfreeze name.py --target-dir out/ #把name打包成exe,放在out目录下
-
利用setup.py完成
#setup代码 from cx_Freeze import setup, Executable executables = [ Executable( script='Test.py', #目标引用脚本 base="win32gui", #GUI程序需要隐藏控制台 targetName = 'Test.exe',#生成exe的名字 icon = "Test.ico" #生成exe的的图标 )]
需要打包的时候,进入到相应的目录,输入:
python setup.py build #打包后的文件放在build目录下
自己踩的坑:生成的程序名字最好用英文名字,中文名字会出现直接乱码报错,如果出现Test2.0这样的名字运行时会提示not find Test2.0.__main__ 而报错