为了账号安全,请及时绑定邮箱和手机立即绑定

macOS、Tkinter、Python (Macports) 给出错误

macOS、Tkinter、Python (Macports) 给出错误

莫回无 2022-04-27 15:56:30
我在 macOS 上使用 Python 获得“无 $DISPLAY 环境变量”。那是 MacPorts python 3.7,而不是本机 python。我想在虚拟环境中使用 MacPorts python,这样我就可以保持我的项目干净。我还必须使用 MacPorts 而不是 Homebrew。我尝试将 $DISPLAY 值设置为 :0.0 失败,但以下链接无济于事,因为我没有使用 matplotlib,而且我在一台带有tkinter、python 和 seaborn 的显示问题的机器上运行:_tkinter.TclError : 没有显示名称,也没有 $DISPLAY 环境变量我从这里 [ https://www.python.org/download/mac/tcltk/#built-in-8-6-8]了解到,不再推荐使用 X11,而是使用 Aqua Cocoa Tk。问题:正确设置此环境变量的诀窍是什么?我的堆栈是:macOS 莫哈韦安装了以下相关端口的 Macports:py37-tkinter @3.7.4 python/py-tkinterpy37-virtualenv @16.7.2 python/py-virtualenvpython37 @3.7.4 lang/python37tcl @8.6.9 语言/tcl传统知识@8.6.9 x11/tkvirtualenv_select @0.1 python/virtualenv_select当我跑步时import tkinter as tktk._test()我明白了_tkinter.TclError: no display name and no $DISPLAY environment variable
查看完整描述

2 回答

?
慕村225694

TA贡献1880条经验 获得超4个赞

相当新的 macOS 版本默认没有 Xserver,因此您还需要安装一个。据我所知(即我正在使用它),XQuartz工作得足够了。

另一种选择是使用使用 Aqua 后端而不是 X11 后端的 Tk 构建。


查看完整回答
反对 回复 2022-04-27
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

我有同样的问题,直到电线。无法tkinter使用任何类型的图形界面正常运行,希望在我的 Python 文件中使用 MacPorts 时保持一致,并且我目前没有使用matplotlib任何东西。

运行 macOS 10.15.5,我发现问题似乎是我的tk端口和我的xorg-server端口没有礼貌地相互通信。我已将前者安装为依赖项;结果,以前的安装默认为x11变体(就像 OP 的端口一样)。

我不确定如何使 Aqua Cocoa 版本工作,但重新安装tk和指定quartz变体为我解决了这个问题:

sudo port install tk +quartz

如果这对您有用,您对 to 的调用tk._test()应该停止返回您给定的TclError.

希望。


查看完整回答
反对 回复 2022-04-27
  • 2 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信