【问题标题】:Tkinter.tclerror: no display name and no $display environment variable Ubuntu 20.04Tkinter.tclerror:没有显示名称和没有 $display 环境变量 Ubuntu 20.04
【发布时间】:2020-08-18 17:44:23
【问题描述】:

我正在尝试使用 Python 的 Anaconda 最新发行版 (3.8.3) 在 Ubuntu 20.04 LTS 上运行此代码

from tkinter import *

root = Tk() # THIS IS THE LINE CAUSING THE ERROR

label = Label(root, text='Hello World!')
label.pack()

root.mainloop()

当我运行它时,我收到以下错误:

 self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

但是,当我在 python shell 的 bash 终端上运行相同的行时,一切正常,窗口打开时带有标签,没有任何问题。我正在使用 Visual Studio Code 和 Python 的 Anaconda 发行版。如果您能让我知道我做错了什么,我将不胜感激。非常感谢,干杯!

【问题讨论】:

    标签: python python-3.x ubuntu user-interface tkinter


    【解决方案1】:

    DISPLAY Environment Variable

    此变量用于向图形应用程序指示 在哪里显示实际的图形用户界面, 该值由 3 部分组成: 后跟冒号 (:) 的主机名, 一个显示数字,后跟一个点 (.) 和屏幕编号。

    @我的机器,echo $DISPLAY => :0(也用过:0.0

    根据 Ubuntu wiki,可以设置环境变量,例如:
    export DISPLAY=:0.0
    在外壳(在其他命令之前),
    或在配置文件中(如 ~/.profile)(持久化)。

    我的猜测是这是一个 IDE 配置问题。
    首先,尝试如上所述设置DISPLAY,
    在壳里;然后从那个 shell 运行你的 IDE。
    如果解决了问题,请在 ~/.profile 中添加导出,
    永久解决方案(需要注销/登录)。

    可能还有特定于 IDE 的方法来配置/设置 env-vars。
    无法测试自己;您可以搜索例如:
    is-there-any-way-to-set-environment-variables-in-visual-studio-code
    和 VisualStudioCode 自己的网站/文档:
    docs/python/environments

    相关:what-is-the-display-environment-variable
    其他类似的问题,例如herehere

    【讨论】:

      猜你喜欢
      • 2019-10-09
      • 2020-10-24
      • 2016-10-02
      • 2015-05-08
      • 1970-01-01
      • 2018-09-03
      • 2019-11-03
      • 1970-01-01
      • 2018-06-23
      相关资源
      最近更新 更多