M1 Mac(Ventura 13.3.1)上Tkinter窗口显示异常求助
解决M1 Mac pyenv虚拟环境下Tkinter窗口空白问题
针对你在搭载Ventura 13.3.1的M1 Mac上,使用pyenv搭建的Python 3.10.6虚拟环境中运行Tkinter代码出现窗口空白的问题,可按以下步骤解决:
排查Tkinter与系统Tk框架的关联
在虚拟环境中执行命令,查看当前Tkinter绑定的Tk版本:python -c "import tkinter; print(tkinter.TkVersion)"对比系统自带Tk框架的版本(路径为
/Library/Frameworks/Tk.framework/Versions/Current/),若版本不一致或命令报错,说明编译Python时未正确链接系统Tk依赖。重新编译Python并指定系统Tk框架
先卸载当前的Python 3.10.6:pyenv uninstall 3.10.6再设置环境变量,强制pyenv编译Python时调用系统Tk框架,执行以下命令:
env \ PATH="/Library/Frameworks/Tk.framework/Versions/Current/bin:$PATH" \ LDFLAGS="-L/Library/Frameworks/Tk.framework/Versions/Current/lib" \ CPPFLAGS="-I/Library/Frameworks/Tk.framework/Versions/Current/include" \ PKG_CONFIG_PATH="/Library/Frameworks/Tk.framework/Versions/Current/lib/pkgconfig" \ pyenv install 3.10.6验证修复效果
切换到重新编译后的Python版本,运行你的Tkinter代码:import tkinter as tk root = tk.Tk() root.title('visual') root.geometry('400x400') text = tk.Label(root, text="hello", height=40, width=100, bg='red', font=('Arial', 20)) text.pack() root.mainloop()此时窗口应正常渲染红色背景的标签,不再出现空白区域。
备选测试方案
若上述方法无效,可尝试使用Mac系统自带的Python(路径/usr/bin/python3)运行代码,确认问题是否源于pyenv虚拟环境的编译配置。
内容的提问来源于stack exchange,提问作者Eidarus Omar
相关产品推荐
相关产品推荐

