如何将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
相关产品推荐
相关产品推荐

