You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Tkinter应用编译为MacOS可执行文件?py2app报错求助

解决py2app编译Tkinter应用时的PyRuntimeLocations报错

报错原因

该错误是因为py2app无法自动识别Python运行时路径,需要在Info.plist配置中显式指定运行时位置。

修复步骤

1. 获取当前Python运行时路径

在终端执行命令,得到你正在使用的Python路径:

which python3

示例输出可能为/usr/local/bin/python3,后续配置会用到这个路径。

2. 更新setup.py配置

修改后的setup.py需要补充PyRuntimeLocations配置,同时补全所有需要打包的非代码文件:

from setuptools import setup

APP = ['main.py']
# 补全项目中所有需要打包的静态文件
DATA_FILES = ['config.json', 'countries_list.txt', 'modules/app.ico']
OPTIONS = {
    'argv_emulation': True,
    'plist': {
        'PyRuntimeLocations': [
            # 替换为你实际获取到的Python路径
            '/usr/local/bin/python3',
            # 可选:添加系统默认Python路径作为备选
            '/usr/bin/python3'
        ]
    }
}

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

3. 重新执行编译命令

先清理之前的构建残留文件,再重新打包:

rm -rf build dist
python3 setup.py py2app

额外提示

  • 如果你使用的是conda虚拟环境,Python路径会是环境目录下的路径(比如/Users/xxx/miniconda3/bin/python3),需对应替换。
  • 若Tkinter应用图标不显示,可在plist中添加'CFBundleIconFile': 'app.ico',确保app.ico已包含在DATA_FILES中。

内容的提问来源于stack exchange,提问作者Y4RD13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:50:26