将py文件生成为exe文件

为什么要生成EXE

python语言是一种很方便的语言,目前有赶超java的趋势。对于自己写的程序,如果想分享给他人,就要发送.py文件,但是要求对方有python的环境,否则就GG了;当然,作为这么厉害的语言,肯定有解决办法啦!将将.py文件生成为.exe文件不就好了?!py文件通常需要运行在Python编程坏境中,而可执行exe文件更方便。

整理了一下,大概有Py2exe和pyinstaller和cx_Freeze三种方法实现文件转化。

py2exe:这个是知名度最高的,但是好像不太适合新手,需要各种库,用起来比较繁琐,不推荐。pyinstaller:可以只是生成单独的可执行程序。最新版本为3.2.1Stable,supportsPython2.7,3.3–3.5。可以自定义图标。跨平台,兼容性良好。cx_Freeze:这个打包质量挺好,操作也简单。缺点是不能生产单独的可执行文件,结果就是exe文件被淹没在众多文件中,看着不高大上。各种方式对比图如下:

py2exe打包完后只能在相同系统下运行;打包同时需要打包dll文件等各种文件

pyInstall打包完以后只有一个exe运行文件。

小编装了pyinstaller,效果不错。下面介绍使用pyinstaller将py文件打包成exe文件的具体步骤。

pyinstaller安装步骤

Step1:下载pyinstaller

pipinstallpyinstaller

安装完后,检查安装成功与否:

pyinstaller--version

安装成功后,就可以使用下面的命令了:

pyinstaller:打包可执行文件的主要命令。pyi-archive_viewer:查看可执行包里面的文件列表。pyi-bindepend:查看可执行文件依赖的动态库(.so或.dll文件)pyi-...:等等。

Step2:使用PyInstaller

pyinstaller的语法:pyinstaller[options]script[script...]

specfile

最简单的用法,在和myscript.py同目录下执行命令:

pyinstallertest.py

然后会看到新增加了两个目录build和dist,dist下面的文件就是可以发布的可执行文件,对于上面的命令你会发现dist目录下面有一堆文件,各种都动态库文件和test可执行文件。有时这样感觉比较麻烦,需要打包dist下面的所有东西才能发布,万一丢掉一个动态库就无法运行了,好在pyInstaller支持单文件模式,只需要执行:

pyinstaller-Ftest.py

你会发现dist下面只有一个可执行文件,这个单文件就可以发布了,可以运行在你正在使用的操作系统类似的系统的下面。当然,pyinstaller还有各种选项,有通用选项,如-d选项用于debug。

在执行pyInstaller命令的时候,会在和脚本相同目录下,生成一个.spec文件,该文件会告诉pyinstaller如何处理你的所有脚本,同时包含了命令选项。一般我们不用去理会这个文件,若需要打包数据文件,或者给打包的二进制增加一些Python的运行时选项时...一些高级打包选项时,需要手动编辑.spec文件。可以使用:

pyi-makespecoptionsscript[script...]

创建一个.spec文件,对于手动编辑的.spec文件,我们可以使用下面任意一条命令:

pyinstallerspecfile

pyi-buildspecfile

Note:可能生成的exe双击后闪退

可以在cmd下打开查看,在cmd打开时候不用加.exe,直接输入名称即可运行。

Tips:实践问题

pyinstaller打包后的exe运行怎么去掉弹出的命令行提示窗口?

1.如果使用.spec文件的话,在该文件中找到console=True修改为console=False

2.如果是直接指定python文件进行pyinstaller打包的话,需要添加—noconsole

pyinstallerpath\mycode.py--noconsole

如果想只打包成一个exe:

pyinstaller-Fpath\mycode.py--noconsole

或:

pyinstaller-F-wpath\mycode.py

更换最终exe生成路径

在cmd中,一开始就要cdD:PythonEXE切换到输出文件夹,然后在用上面的代码,说明:各个参数的作用,

例子:pyinstaller-F-w-pD:  mpcore-pythonlibs-id:  mpmain.i


转载请注明:http://www.aierlanlan.com/cyrz/5009.html