使用 PyInstaller 为 Python 程序打包
前几天一直在折腾用 py2app
给 Python 程序打包的问题,但是最终还是无疾而终。不知道是不是因为使用了 PyQt5
的关系,打出来的包直接被系统 aborted,Google 爬了很久也没有找到解决方法。因此转向PyInstaller
,测试后发现的确能非常快速地打包,可以在别的电脑上无缝运行。
相比 py2app
,PyInstaller
个人认为有以下区别:
- 在 OS X 上打出的包不是 OS X 标准的
.app
包,显示为一个二进制文件(这算是缺点? - 不需要
virtualenv
,使用方便 - 打包速度非常快,相对于
py2app
而言
那就开始使用吧。首先安装:
pip install pyinstaller
估计速度会很慢,推荐使用万能中科大的镜像站,速度飞起来。
安装好后就可以直接使用了,不需要 virtualenv
。cd
到项目的目录,用 pyinstaller
执行 Python 脚本。以我的 DriveIt 漫画下载器为例:
cd ~/Documents/PythonStuff/DriveIt
pyinstaller driveit-gui.py
稍等一会就好了。打出的包是一个文件夹,如果想要单文件双击直接执行,把下面那条命令替换为:
pyinstall --onefile drive-it.gui
这样打出的包就是个单文件了,存放在 dist
目录下。包含了各种依赖,实测的确可以双击直接运行,在别人完全没有配置环境的电脑上也没有问题。
效果:
高级用法还没研究过,以后要是有需要会好好研究的。