Created
May 4, 2019 14:44
-
-
Save Warm-rain/bbfb67561d61ed6a12a06fb95f5e2e2b to your computer and use it in GitHub Desktop.
pyhton3.6.3是目前最新的版本,将python脚本打包为可执行的exe文件是通常的需求,这其实是一件比较简单的事情,但因为python混乱的版本控制和管理,网络上各种临时方法和补丁满天飞,应小伙伴的需求再上一篇博客,把python3.6.3的打包过程完整展现出来。
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
安装 | |
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的首字母缩写 | |
PyInstaller使用 | |
执行命令 -- pyinstaller.exe [-option] yourname.py | |
1.1 Option 选项包括: | |
-F, -onefile 打包成一个exe文件 | |
-D, -onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项) | |
-c, -console, -nowindowed 使用控制台,无界面(默认) | |
-w, -windowed, -noconsole 使用窗口,无控制台 | |
2 编译要转化的.py文件,变成.exe文件,最后编译成功后 | |
2.1 -F,-onefile 打包成一个exe文件 | |
Pyinstaller.exe -F –w yourname.py | |
2.2 Pyinstaller.exe --console --onefile yourfile只生成一个文件 .exe (有控制台cmd窗口) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment