前言
pyhton3.6.3是目前最新的版本,将python脚本打包为可执行的exe文件是通常的需求,这其实是一件比较简单的事情,但因为python混乱的版本控制和管理,网络上各种临时方法和补丁满天飞,应小伙伴的需求再上一篇博客,把python3.6.3的打包过程完整展现出来。
安装
pip3 install pyinstaller 即可
注意:别用pip3.6 install
打包
- 进入你要打包的python目录
- 按照你脚本程序中文件需求把python用到的文件放在一起
- 进入cmd程序丑陋的黑窗口
- 在光标后面键入pyinstaller yourfilename.py ,回车即可
- 目录下出现2个新的目录:dist、build,build可以删掉
- 进入dist,找到exe文件,点击打开,大功告成!
参数说明
上图列出pyinstaller的用法示例,常用的如下:
-F 表示生成单个可执行文件
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
-p 表示你自己自定义需要加载的类路径,一般情况下用不到
-i 表示可执行文件的图标
–version-file file_version_info.txt :表示将标准版本信息文件的内容赋给exe文件的属性
提醒:如果python需要用到外部的加载文件,如背景图片之类,需要按照你的程序中的要求放在相应的目录下,一般都是拷贝在生成的exe文件目录下,python程序中仅用文件名引用就行了,无需路径。
关于版本信息的设置问题
方法1:
这是pyinstaller自带的。
进入C:\Program Files\Python36-32\Lib\site-packages\PyInstaller\utils\cliutils\目录下,你会看到如下几个文件:
其中的grab_version是用来捕获一个exe文件的版本信息并自动在同一目录下输出一个file_version_info.txt文件版本信息的,其中set_version是用来给一个exe文件赋值版本信息的,用法分别如下:
- 进入cmd界面
- 将目录转移到C:\Program Files\Python36-32\Lib\site-packages\PyInstaller\utils\cliutils\下
- 拷贝一个要获取版本信息的exe文件到这个目录下
- 在cmd窗口键入:python grab_version.py filename.exe
- 目录下会自动出现一个标准的file_version_info.txt文件,双击打开,按照需求修改
- 在cmd窗口键入:python set_version.py file_version_info.txt youfilename.exe即可
方法2:
- 在打包的时候就已经准备好了版本信息文件:file_version_info.txt
- 打包时附带有如下参数:pyinstaller –file-version file_version_info.txt yourfile.py即可
方法3
进入
- 进入http://www.carifred.com/fvie/,下载fvie.exe工具,就是file-version-infp-edit的首字母缩写
- 打开,选择你要赋值版本信息的exe文件,编辑所需要的信息,点击确定即可。
这是我成功赋值版本信息后的样子
详细说明
在cmd窗口键入:pyinstaller -h就会出现pyinstaller的所用帮助说明,我把详细内容粘贴在这里,供需要的人学习。
usage: pyinstaller [-h] [-v] [-D] [-F] [--specpath DIR] [-n NAME]
[--add-data <SRC;DEST or SRC:DEST>]
[--add-binary <SRC;DEST or SRC:DEST>] [-p DIR]
[--hidden-import MODULENAME]
[--additional