知识储备 -- 用py2app将Python代码打包成MacOS可用的APP

666 阅读1分钟

用py2app将Python代码打包成MacOS可用的APP

自己电脑上有完整的python环境,所以偶尔写个小工具什么的都很easy,直接命令行run一波就OK,但是如果需要再朋友的电脑上运行,帮别人写了一个小工具,他没有运行环境,就很麻烦。不能让人家也从homebrew开始全都配置一遍吧。

这时候就需要将代码做成一个简单的GUI APP。

常用的python GUI库有 PySimpleGUI 或者 QT。 开发难度差别不大,一些简单的输入输出都没问题。

但是在打包的过程中,如果使用PySimpleGUI会遇到一些麻烦,它是依赖于 tkinter 库,也就是要有tcl环境,如果目标机器上没有tcl环境,在运行时就会出现无法启动的问题。(别问我怎么知道的,这个问题花费了两个小时去google搜,尝试解决,都不好用,什么复制tcl文件夹到某个lib路径,都不好用)

而如果使用QT,就没有运行时的问题,直接打包之后就可以用了。

简单记录一下步骤,留作备忘。

  1. 编写代码
  2. 运行生成setup命令
py2applet --make-setup your_file.py

这时候会生成一个setup.py文件

3.编辑 setup.py文件

"""
This is a setup.py script generated by py2applet

Usage:
    python setup.py py2app
"""

from setuptools import setup

APP = ['your_file.py']
DATA_FILES = []
OPTIONS = {
    'iconfile':'your_logo.icns',
    'plist': {
            'CFBundleName'   : '应用名',     # 应用名
            'CFBundleDisplayName': '应用显示名', # 应用显示名
    },
    "includes": ["PyQt6", "xxxxxx", "xxxxx"]
}

setup(
    app=APP,
    data_files=DATA_FILES,
    options={'py2app': OPTIONS},
    setup_requires=['py2app'],
)

  1. 执行生成app命令
python3 setup.py py2app

会生成一个dist文件夹,里面就有可执行的APP了。