使用 py2app 打包 Python 应用程序为 macOS 应用
创始人
2025-05-06 17:45:55

py2app 是一个将 Python 脚本打包为 macOS 应用程序的工具。下面是一个完整的使用示例:

基本使用步骤

1. 安装 py2app

bash

pip install py2app

2. 创建简单的 setup.py 文件

假设你有一个名为 myapp.py 的 Python 脚本:

python

# myapp.py

import tkinter as tk

from tkinter import messagebox

def main():

root = tk.Tk()

root.title(" eikkafy.com ")

label = tk.Label(root, text="Hello, py2app!")

label.pack(padx=20, pady=20)

button = tk.Button(root, text="Click Me", command=lambda: messagebox.showinfo("Info", "You clicked the button!"))

button.pack(pady=10)

root.mainloop()

if __name__ == "__main__":

main()

3. 创建 setup.py 文件

python

# setup.py

from setuptools import setup

APP = ['myapp.py']

DATA_FILES = []

OPTIONS = {

'argv_emulation': True,

'iconfile': 'app.icns', # 可选的应用图标

'plist': {

'CFBundleName': "MyApp",

'CFBundleDisplayName': "My Python App",

'CFBundleIdentifier': "com.example.myapp",

'CFBundleVersion': "1.0.0",

'CFBundleShortVersionString': "1.0",

}

}

setup(

app=APP,

data_files=DATA_FILES,

options={'py2app': OPTIONS},

setup_requires=['py2app'],

4. 构建应用程序

在终端运行:

bash

python setup.py py2app

这将在 dist 目录下生成一个 .app 文件。

高级选项示例

包含数据文件和资源

python

# setup.py

from setuptools import setup

APP = ['myapp.py']

DATA_FILES = [

('Resources', ['data/config.json', 'images/logo.png']),

('Documents', ['README.txt'])

]

OPTIONS = {

'argv_emulation': True,

'includes': ['PIL', 'numpy'], # 包含额外的模块

'packages': ['requests'], # 包含整个包

'iconfile': 'app.icns',

'plist': {

'NSHumanReadableCopyright': '© 2023 My Company',

'LSUIElement': True, # 设置为后台应用(无Dock图标)

}

}

setup(

app=APP,

data_files=DATA_FILES,

options={'py2app': OPTIONS},

setup_requires=['py2app'],

使用 Alias 模式(开发模式)

在开发时,可以使用 alias 模式,这样修改代码后无需重新构建:

bash

python setup.py py2app -A

常见问题解决

模块未包含:如果运行时提示缺少模块,在 OPTIONS 中添加 'includes' 或 'packages'

图标设置:

创建 app.icns 文件(可以使用在线工具将 PNG 转换为 ICNS)

放在项目根目录或指定路径

Python 3 兼容性:

确保使用支持 Python 3 的 py2app 版本

在 setup.py 中可能需要指定 python_version

清理构建文件:

bash

python setup.py py2app --clean

完整工作流程示例

创建项目结构:

myapp/

├── myapp.py

├── setup.py

├── app.icns

└── data/

└── config.json

运行构建命令:

bash

cd myapp

python setup.py py2app

运行生成的应用程序:

bash

open dist/MyApp.app

注意:py2app 主要用于 macOS 系统,如果你需要在其他平台上打包,可以考虑:

Windows: py2exe 或 cx_Freeze

Linux: cx_Freeze 或 PyInstaller

跨平台: PyInstaller

相关内容

热门资讯

在阿曼瓦迪峡谷探寻荒漠深处隐藏... 在阿拉伯半岛的东南角,阿曼以辽阔的沙漠和海岸线而闻名。然而,在这片看似干旱单调的土地深处,却藏着许多...
内蒙古胡杨林怎么玩?远胜游专属... 每年秋天,内蒙古额济纳旗的胡杨林便会披上金色的外衣,成为摄影爱好者和自然风光迷的天堂。这片世界上仅存...
原创 假... 不少父母带娃去户外游玩,总是逃不过“拍照—发圈—走人”的套路。回家后,还各种吐槽:除了树木花草没啥看...
山东一选调生被指骚扰女性,当地... 近日,有人反映山东菏泽学院毕业生袁某在视频平台骚扰女性。根据举报,袁某在陌生用户的日常生活记录视频评...