python打包*.py为exe常用PyInstaller。安装方法:
1 | pip install pyinstaller |
@TOC
常用命令
基本命令如下。
1 | pyinstaller scriptname |
其中scriptname为打包的文件或一个.spec-file
常用语句形式
有界面的一般形式
1
pyinstaller -Fw xxx.py -i aaa.ico
无界面的一般形式
1
pyinstaller -F xxx.py -i aaa.ico
常用可选参数
简略命令:
可选参数 | 作用 |
---|---|
-F | 打包为一个文件 |
-D | 一个目录,包含exe,依赖多 |
-c | 使用控制台 |
-w | 无控制台,使用窗口 |
-i | 加.ico图标 |
–version-file | 添加版本信息 |
详细命令:
可选参数 | 作用 |
---|---|
-D, –onedir | 创建一个目录,包含exe文件,但会依赖很多文件(默认选项) |
-F, –onefile | 打包为一个exe |
–specpath DIR | 指定生成.spec-file的目录,默认是当前目录 |
-n NAME, –name NAME | 指定打包应用和.spec-file的名字,默认是第一个脚本的文件名 |
-i <FILE.ico>, –icon <FILE.ico> | 添加图标(可选实际很多类型<FILE.ico or FILE.exe,ID or FILE.icns or “NONE”>) |
–version-file FILE | 从version-file为exe增加版本信息 |
-c, –console, –nowindowed | 使用控制台,无窗口(默认)。在Windows中第一个脚本是.pyw文件,此项无效。 |
-w, –windowed, –noconsole | 使用窗口,无控制台。Windows第一脚本是.pyw自动启用。在*NIX系统此项忽略。 |
pyinstaller更多详细命令可参考命令pyinstaller --help
的输出结果。
增加版本信息
版本信息增加两步走:
- 使用 pyi-grab_version 获取版本信息的模板文件。
- 使用 pyi-set_version 为打包好的程序附加版本信息。
获取版本信息模板文件
pyi-grab_version对已有版本信息的exe(如Chrome、微信、QQ等等)只要有就成。
1 | pyi-grab_version [-h] exe-file [out-filename] |
示例如下
1 | pyi-grab_version "C:\Program Files\Nutstore\Nutstore.exe" version-info.txt |
version-info.txt就是获取的版本信息模板,我们可以对它进行编辑,修改成我们想给打包的程序设定的信息。
设置版本信息
有两种方式
在打包时加入版本信息
加入选项 –version-file version-file
1
pyinstaller -Fw --version-file version-file py-file
示例:
1
pyinstaller -Fw --version-file version-info.txt xxx.py
另外添加版本信息
使用pyi-set_version为已打包好的exe文件添加或修改版本信息
1
pyi-set_version version-file exe-file
示例:
1
pyi-set_version version-info.txt xxx.exe
附加资源文件
1 | #生成资源文件目录访问路径 |
修改.spec文件
1 | datas=[('res','res')], |