pyinstaller <选项> <Python源文件>
不管这个 Python 应用是单文件的应用,还是多文件的应用,只要在使用 pyinstaller 命令时编译作为程序入口的 Python 程序即可。
PyInstaller工具是跨平台的,它既可以在 Windows平台上使用,也可以在 Mac OS X 平台上运行。在不同的平台上使用 PyInstaller 工具的方法是一样的,它们支持的选项也是一样的。
先创建一个文件夹(目录),在该目录下创建一个.py文件(或复制一个.py文件)。
然后转命令行窗口(cmb),进入到创建的文件夹(目录)下,执行如下命令:
pyinstaller -F xxx.py
执行上面命令,将看到详细的生成过程。当生成完成后,将会在当前目录下生成一个dist目录,并在该目录下看到有一个xxx.exe文件,这就是使用PyInstaller工具生成的exe程序。
在上面命令中使用了-F选项,该选项指定生成单独的exe文件,因此,在dist目录下生成了一个单独的xxx.exe文件(在Mac OS X平台上生成的文件没有后缀);与-F选项对应的是-D选项(默认选项),该选项指定生成一个目录(包含多个文件)来作为程序。
PyInstaller常用选项如表1所示。
表1 PyInstaller支持的常用选项
| 选项 | 说明 |
| -h,--help | 查看该模块的帮助信息 |
| -F,-onefile | 产生单个的可执行文件 |
| -D,--onedir | 产生一个目录(包含多个文件)作为可执行程序 |
| -a,--ascii | 不包含Unicode字符集支持。不包含编码,在支持unicode的Python版本上默认包含所有的编码 |
| -d,--debug | 产生debug版本的可执行文件 |
| -w,--windowed,--noconsolc | 指定程序运行时不显示命令行窗口(仅对Windows有效) |
| -c,--nowindowed,--console | 指定使用命令行窗口运行程序(仅对Windows有效),默认 |
| -i,--icon=<file.ioc> | 将file.ico添加为可执行文件的资源,改变程序的图标(只对Windows系统有效) |
| -o DIR,--out=DIR | 指定spec文件的生成目录。如果没有指定,则默认使用当前目录来生成spec文件 |
| -p DIR,--path=DIR | 设置Python导入模块的路径(和设置PYTHONPATH环境变量的作用相似)。也可使用路径分隔符(Windows使用分号,Linux 使用冒号)来分隔多个路径 |
| -n NAME,--name=NAME | 指定项目(产生的spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为spec的名字 |
| -icon=<file.exe,n> | 将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效) |
| -v file,--version=file | 将verfile作为可执行文件的版本资源(只对Windows系统有效) |
| -s,--strip | 可执行文件和共享库将run through strip。注意Cygwin的strip往往使普通的win32 Dll无法使用 |
| -X,--upx | 如果有UPX安装(执行Configure.py时检测),会压缩执行文件(Windows系统中的DLL也会)(参见note) |
在表1中列出的只是PyInstaller模块所支持的常用选项,如果需要了解PyInstaller选项的详细信息,则可通过pyinstaller -h来查看。
三、设置打包后的版本信息
编辑“版本信息文件”,此文件为纯文本文件,可用.txt扩展名,文件名可随意,如“file_version_info.txt”。典型的版本信息文件内容如下,中文注释是作者为方便读者学习而加的,注意红框中的项目。
说明:
1.有关固定文件信息“ffi”的更多详细信息,请参阅:# msdn.microsoft.com/en-us/libra…
2. Translation中的语言代码,Locale ID信息见表2。
四、编译.py文件为.exe可执行文件
1**、无版本配置文件**
下面以“漂亮玫瑰.py”为例,代码见:Python绘图——漂亮的玫瑰(源代码)")
创建一个文件夹(目录),将“漂亮玫瑰.py”复制到该文件夹,win+R,输入cmd进入命令行窗口,通过cd命令进入刚才创建的文件夹(目录),在该目录下执行如下命令:
pyinstaller -F 漂亮玫瑰.py
上面命令中的“-F”选项指定生成单个的可执行程序。运行上面命令,在当前目录下生成了一个build、dist二个子目录,并在dist子目录下生成了一个“漂亮玫瑰.exe”文件。
直接双击运行“漂亮玫瑰.exe”程序就会绘制“漂亮玫瑰”,读者可自行查看运行结果。
在“漂亮玫瑰.exe”上单击右键,选“属性”,选“详细信息”页,信息显示如图1所示。
图1 直接编译后有exe文件无版本信息
2**、有版本配置文件**
编辑“版本信息文件”,文件名随意,但需是文件文件,如“myVerInfo.txt”,内容如下:
VSVersionInfo(
ffi=FixedFileInfo(
filevers=(1, 0, 0, 23),
prodvers=(1, 0, 0, 1),
mask=0x3f,
flags=0x0,
OS=0x4,
fileType=0x1,
subtype=0x0,
date=(0, 0)
),
kids=[
StringFileInfo(
[
StringTable(
'080403a8',
[StringStruct('CompanyName', '张瑞林'),
StringStruct('FileDescription', '绘制漂亮玫瑰'),
StringStruct('FileVersion', '1.001'),
StringStruct('InternalName', '漂亮玫瑰.exe'),
StringStruct('LegalCopyright', '张瑞林版权所有'),
StringStruct('OriginalFilename', '漂亮玫瑰.py'),
StringStruct('ProductName', 'Python图形绘制系列—玫瑰花'),
StringStruct('ProductVersion', '1.005')])
]),
VarFileInfo([VarStruct('Translation', [2052, 936])])
]
)
在该目录下执行如下命令:
pyinstaller -F --version-file=myVerInfo.txt 漂亮玫瑰.py
执行过程如图2。
图2 执行pyinstaller -F --version-file=myVerInfo.txt 漂亮玫瑰.py
此时会多一个“漂亮玫瑰.spec”文件,见图3。
图3 执行pyinstaller -F --version-file=myVerInfo.txt 漂亮玫瑰.py后的文件夹
“漂亮玫瑰.spec”中有一行“version='myVerInfo.txt'”,“漂亮玫瑰.spec”完整内容如下所示,注意红框内容。
一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。
二、Python必备开发工具
工具都帮大家整理好了,安装就可直接上手!
三、最新Python学习笔记
当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
四、Python视频合集
观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
五、实战案例
纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
六、面试宝典