Pyinstaller是python程序打包的一个工具,pyinstaller本身可以跨平台使用,但这里的跨平台指的是pyinstaller本身,通过pyinstaller打包出来的文件是无法跨平台的,在MacOS下使用pyinstaller打包python程序,打包后的内容只可在MacOS下运行,在windwos下打包的python程序,只可在Windows下运行。
Pyinstaller的使用
PyInstaller 工具的命令语法如下:
pyinstaller 选项 Python 源文件
有关参数解释如下:
pyinstaller最重要的两个参数就是-F与-D参数
使用-F参数,pyinstaller会将python脚本打包成单个exe文件
使用-F参数,当生成程序完成后,将会在此 app 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app.exe 文件,这就是使用 PyInstaller 工具生成的 EXE 程序。
使用-D参数,pyinstaller会将python脚步打包成一个文件夹,运行程序时,需要进入该文件夹,点击运行相应的可执行程序(默认选项)
使用-D参数,将会在 app 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app 子目录,在该子目录下包含了大量 .dll 文件和 .pyz 文件,它们都是 app.exe 程序的支撑文件。
另有如下参数以及含义:
-h,--help | 查看该模块的帮助信息 |
-F,-onefile | 产生单个的可执行文件 |
-D,--onedir | 产生一个目录(包含多个文件)作为可执行程序 |
-a,--ascii | 不包含 Unicode 字符集支持 |
-d,--debug | 产生 debug 版本的可执行文件 |
-w,--windowed,--noconsolc | 指定程序运行时不显示命令行窗口(仅对 Windows 有效) |
-c,--nowindowed,--console | 指定使用命令行窗口运行程序(仅对 Windows 有效) |
-o DIR,--out=DIR | 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件 |
-p DIR,--path=DIR | 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径 |
-n NAME,--name=NAME | 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字 |
这里需要重点关注一下-w ,使用了这个参数后当运行.exe文件时不会在弹出黑色窗口。
另外当我们需要在软件的左上方加上自己设置的图标时就需要利用如下语句:
pyinstall -i xxx.ico -n xxx -w -D entrance.py
上面基本上就是利用Pyinstaller对python程序打包的基本方法。
下面再说一下自己需要的一下问题,首先如果利用了上述语句对项目进行打包,发现xxx.ico的图标无法显示在运行的程序上,可以尝试将图片文件放置于和entrance.exe同级目录下运行。
另外在使用参数-D进行打包时如果发现确实.pyc文件,即可去相应的原项目文件夹的_pycache_文件夹下找到并放入与entrace.exe同级的新建目录内,再次运行即可。