制作 MacOS app
py2app 是专门用来将 Python 文件制作为 MacOS app 的第三方函数库 ( 打包为 MacOS app ),这篇教学会介绍如何安装 py2app,以及实作透过 py2app 将 Python 制作成 MacOS 操作系统可以执行的应用程序。
快速导览:
因为 Google Colab 无法制作应用程序,所以请使用本机环境 ( 参考:使用 Python 虚拟环境 ) 或使用 Anaconda Jupyter 进行实作 ( 参考:使用 Anaconda )。
使用虚拟环境
使用 py2app 制作 MacOS 应用程序时,会将所有安装的函数库一并打包,因此请使用虚拟环境,控制打包的内容只有“使用到的函数库”,避免产生的应用程序过于庞大且可能会有互相干扰的状况,使用虚拟环境请参考下面两篇文章:
- Anaconda Jupyter:建立虚拟环境 ( 针对 Anaconda Jupyter )
- Python 本机环境:使用 Python 虚拟环境
进入虚拟环境后,建议使用下方指令将 pip 升级到最新版,避免产生的 app 因为 pip 版本不同而无法执行的状况。
pip install --upgrade pip
安装所需的函数库
升级 pip 之后,安装要打包的 Python 文件里所有需要用到的函数库,以本篇教学的范例而言,需要安装 PyQt5 函数库 ( 在虚拟环境底下 )。
pip install PyQt5
安装后,建立一个 Python 文件 ( 范例为 test.py ),程序码内容如下 ( 单纯执行后会打开一个视窗界面,内容包含两颗按钮,点击不同按钮时会切换文字 ):
from PyQt5 import QtWidgets
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
Form.setWindowTitle('oxxo.studio')
Form.resize(300, 200)
def show(e):
label.setText(e)
label = QtWidgets.QLabel(Form)
label.setText('A')
label.setStyleSheet('font-size:20px;')
label.setGeometry(50,30,100,30)
btn1 = QtWidgets.QPushButton(Form)
btn1.setText('A')
btn1.setGeometry(50,60,50,30)
btn1.clicked.connect(lambda:show('A'))
btn2 = QtWidgets.QPushButton(Form)
btn2.setText('B')
btn2.setGeometry(110,60,50,30)
btn2.clicked.connect(lambda:show('B'))
Form.show()
sys.exit(app.exec_())
安装 py2app 函数库
输入下列指令,安装 py2app 函数库 ( 在虚拟环境底下 )。
pip install py2app
建立设定档
输入下列指令,执行后就会建立生成 app 执行档的设定档 setup.py。
py2applet --make-setup test.py
制作 MacOS app
输入下列指令,执行后就根据设定档,产生 MacOS 应用程序。
python setup.py py2app
打包过程完成后 ( 最后出现 done 文字 ),会产生 build 和 dist 两个文件夹,build 文件夹内容为打包过程中所需要的文件,dist 文件夹内容就是最后产生的 MacOS 应用程序。
进入 dist 文件夹,就可以执行应用程序 ( 注意,不同版本的 MacOS 产生的应用程序可能无法互相使用! )
执行应用程序就会看到出现两颗按钮互相切换的画面,由于现在电脑操作系统可以设定深色模式,如果没有设定样式,则默认样式会随著作业系统而改变。
小结
透过 py2app 就可以透过 Python 开发桌面的应用程序,但由于操作系统彼此可能不相容的问题,建议如果透过这种方式开发应用程序,还是要在不同的操作系统进行测试,或透过不同的操作系统开发对应的版本。
微信扫码关注
抖音扫码关注