使用 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

相关内容

热门资讯

原创 非... 先问个问题:当今非洲能把地狱开局打成逆袭王炸的国家,你觉得是谁? 不少人第一反应是卢旺达,靠着学习经...
贵州吃货团携非洲网红探访黔三福... 2026年6月30日,贵州知名美食团队“贵州吃货团MCN”与非洲籍网红王帅(中文名)继续他们的黄果树...
福建:夏日赏荷正当时 盛夏时节,福建多地荷花迎来盛放期,粉白繁花缀满荷塘,为炎炎夏日平添一抹清凉诗意。 龙岩市新罗区东...