EXE是在OS/2、MS-DOS和Windows系统中通用的可执行文件的扩展名。 JSON 格式方便。
一、基础
EXE
是在OS/2
、MS-DOS
和Windows
系统中通用的可执行文件的扩展名。英文全名executable file
,译作可执行文件,可移植可执行(PE
)文件格式的文件,它可以加载到内存中,并由操作系统加载程序执行,是可在操作系统存储空间中浮动定位的可执行程序。
Windows
操作系统中的二进制可执行文件分两种:一种后辍名为.COM
,另一种是.EXE
。在MS-DOS
下,有重名的.EXE
文件和.COM
文件运行时优先执行.COM
文件。
Python是一个脚本语言,被解释器解释执行,它的发布方式有以下几种:
.py文件:对于开源项目或者源码没那么重要的,直接提供源码,需要使用者自行安装Python并且安装依赖的各种库,Python官方的各种安装包就是这样做的。
.pyc文件:有些公司或个人因为机密或者各种原因,不愿意源码被运行者看到,可以使用pyc文件发布,pyc文件是Python解释器可以识别的二进制码,故发布后也是跨平台的,需要使用者安装相应版本的Python和依赖库。
可执行文件:对于非码农用户或者一些小白用户,最简单的方式就是提供一个可执行文件,需要针对不同平台需要打包不同的可执行文件。
二、使用(基于pyinstaller)
命令参数
pyinstaller -h
-F
,同--onefile
,表示生成单个可执行文件-D –onedir
创建一个目录,包含exe文件,默认选项-w
,同--windowed/--noconsole
,表示去掉控制台窗口,这在GUI界面时非常有用-c
,同–console/–nowindowed
,使用控制台,默认无界面-p
表示你自己自定义需要加载的类路径,一般情况下用不到-i
表示可执行文件的图标
实战
windows
- 安装pyinstaller
pip install pyinstaller
- 查看版本
pyinstaller --version
- 生成可执行文件
pyinstaller -F code.py
,正常会生成dist/code.exe
,双击运行即可
- 安装pyinstaller
Mac
安装pyinstaller
pip install pyinstaller
查看版本
pyinstaller --version
生成可执行文件
sudo pyinstaller --onefile --clean code.py
- 执行后运行报错
1
2
3
4Traceback (most recent call last):
File "site-packages/PyInstaller/loader/rthooks/pyi_rth__tkinter.py", line 30, in <module>
FileNotFoundError: Tcl data directory "/var/folders/2q/s0zwfxm12q7d4qd0y3gggld80000gn/T/_MEIZRbbiz/tcl" not found.
[71390] Failed to execute script pyi_rth__tkinter- 解决:
sudo pyinstaller --add-binary='/System/Library/Frameworks/Tk.framework/Tk':'tk' --add-binary='/System/Library/Frameworks/Tcl.framework/Tcl':'tcl' --onefile --clean code.py
三、扩展
OS/2是”Operating System/2”的缩写,是因为该系统作为IBM第二代个人电脑PS/2系统产品线的理想操作系统引入的,它是由微软和IBM公司共同创造,后来由IBM单独开发的一套操作系统。
MS-DOS,MicroSoft Disk Operating System的缩写,译为微软磁盘操作系统,是一个由美国微软公司发展的操作系统,运行在Intel x86个人电脑上。它是DOS操作系统家族中最著名的一个,在Windows 95以前,DOS是IBM PC及兼容机中的最基本配备,而MS-DOS则是个人电脑中最普遍使用的DOS操作系统。
Microsoft Windows,译为视窗操作系统,是微软公司以图形用户界面为主推出的一系列专有商业软件操作系统。其问世时间为1985年,起初为运行于MS-DOS之下的桌面环境,其后续版本逐渐发展成为主要为个人电脑和服务器用户设计的操作系统,并最终获得了世界个人电脑操作系统的垄断地位。此操作系统可以在几种不同类型的平台上运行,如个人电脑(PC)、移动设备、服务器(Server)和嵌入式系统等等,其中在个人电脑的领域应用内最为普遍。