pyinstaller能够在Windows、Linux等操作系统下将Python脚本打包成可直接运行程序。使Python脚本可以在没有安装Python的环境中直接运行,方便共享。
1,待转换的py文件绝对路径最好不要包含中文字符。容易出现一些莫名其妙的问题。
2, python中需要有py文件中用到的第三方库。否则在转换后的. exe文件中会出现不符合预期的结果。
1,配置pip镜像源.pip配置方法参考pip配置和安装第三方模块。如果已经配置,跳过。
2,打开cmd命令行窗口,输入pip安装pyinstaller,安装pyinstaller库。
C:\Users\ Administrator> pip安装pyinstaller 收集pyinstaller 下载http://pypi.doubanio.com/packages/3c/86/909a8c35c5471919b3854c01f43843d9b5aed0e9948b63e560010f7f3429/PyIns taller-3.3.1.tar。广州(3.5 mb) 100% |████████████████████████████████| 3.5 mb 112 kb/s 要求已经满足:setuptools在c: \ python27 \ lib \网站(从pyinstaller) 要求已经满足:pefile>=2017.8.1 c: \ python27 \ lib \网站(从pyinstaller) 要求已经满足:macholib> 1.8=c: \ python27 \ lib \网站(从pyinstaller) 要求已经满足:dis3的c: \ python27 \ lib \网站(从pyinstaller) 要求已经满足:未来在c: \ python27 \ lib \网站(从pyinstaller) 要求已经满足:altgraph> 0.15=c: \ python27 \ lib \网站(macholib>=1.8→pyinstaller) 安装收集包:pyinstaller 运行设置。py安装pyinstaller…完成 成功安装pyinstaller-3.3.1
3,确认pyinstaller安装结果,位于c: \ Python27 \脚本路径下。执行,pyinstaller查看
C: \ Users> pyinstaller的地方 c: \ Python27 \ Scripts \ pyinstaller.exe
pyinstaller[选项]脚本
选项常用选项说明:
- f, -onefile:表示生成单个可执行文件,常用。 窗口的,- w -noconsole:表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧! - p表示你自己自定义需要加载的类路径,一般情况下用不到 我表示可执行文件的图标。注意:图片后缀必须是ico - c、控制台、-nowindowed:使用控制台,无窗口(默认) - d, -onedir:创建一个目录,包含EXE文件,但会依赖很多文件(默认选项)
基本实例:pyinstaller - f myscript.py。
pyinstaller更多语法见官网说明:https://pyinstaller.readthedocs.io/en/stable/usage.html
pyinstaller其实就是把python解释器和脚本打包成一个可执行文件,和编译成真正的机器码是完全两回事。所以打包不一定会提高运行效率,可能会降低运行效率,但是好处是在运行者机器上不用安装python和脚本所依赖的库。
输入指定的脚本后,首先pyinstaller会分析该脚本所依赖的其他依赖,然后进行查找,复制,把所有相关的依赖都收集起来并惊醒加密处理,包括python解释器,最后把这些文件放在一个目录下,或者打包到一个可执行文件。然后就可以直接运行所生成的可执行文件。
需要注意的是,使用pyinstaller打包生成的可执行文件,只能再和打包机器系统相同的环境下运行32位python环境打包的程序可以运行在32/64位windows系统上.64点位python环境打包的程序只能运行在64位windows系统上。所以如果想打包程序的话,建议使用32位python环境打包。
1,确认待转换的py文件可正确运行,不存在语法错误。如ccc.py
2,执行pyinstaller - f $ {Python脚本名}完成文件转换. . exe文件生成的绝对路径会在倒数第二行显示,通常位于当前目录下dist所在目录下。转换后的. exe文件名与Python文件名相同。如下图所示
d: \程序文件\ notepad++祝辞pyinstaller - f ccc.py 信息:PyInstaller: 3.3.1 信息:Python: 2.7.12 信息平台:Windows-7-6.1.7601-SP1 …… 信息:重定向Microsoft.VC90。CRT版本(9,0 21022 8)→(9、0、30729、4940) 信息:建筑包裹out00-PKG (CArchive)。pkg成功完成。 信息:引导装载程序c: \ python27 \ lib \网站\ PyInstaller \引导装载程序\ Windows-32bit \ run.exe 信息:检查EXE 信息:建筑因为out00-EXE EXE。toc是不存在的 信息:从out00-EXE.toc构建EXE 信息:附加档案EXE d: \程序文件\ notepad++ \ dist \ ccc.exe 信息:从out00-EXE构建EXE。toc成功完成。使用Pyinstaller转换py文件为. exe可执行程序过程详解