为啥 python 编译器在 tkinder 模块中给我一个错误? [复制]

Posted

技术标签:

【中文标题】为啥 python 编译器在 tkinder 模块中给我一个错误? [复制]【英文标题】:Why python compiler gives me an error in tkinder module? [duplicate]为什么 python 编译器在 tkinder 模块中给我一个错误? [复制] 【发布时间】:2020-06-18 01:23:33 【问题描述】:

这是一个示例代码:

from tkinter import * 

root = Tk() 
my_label = Label(root, text="Hello World")
my_laber.pack()
root.mainloop()

这在我的终端上不起作用:Ubuntu (18.04):

 Traceback (most recent call last):
      File "hello_world.py", line 3, in <module>
        root = Tk() #Setting the windown, to do first.
      File "/usr/lib/python3.6/tkinter/__init__.py", line 2023, in __init__
        self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
    _tkinter.TclError: no display name and no $DISPLAY environment variable

我该如何解决?

Python 版本

Python 3.6.9 (default, Nov  7 2019, 10:44:02)
[GCC 8.3.0] on linux

【问题讨论】:

这能回答你的问题吗? _tkinter.TclError: no display name and no $DISPLAY environment variable; ***.com/questions/56273204/…; ***.com/questions/48254530/… 【参考方案1】:

您可以通过检查是否有分配给环境变量DISPLAY 的值并在返回的字符串为空时分配它来解决此问题:

from tkinter import *
import os

if os.environ.get('DISPLAY', '') == '':
    print('no display found. Using :0')
    os.environ['DISPLAY'] = ':0'

root = Tk()
my_label = Label(root, text="Hello World")
my_label.pack() # watch out here - you have a typo in your code
root.mainloop()

您可以在this 中找到有关分配给DISPLAY 的号码的更多信息ask ubuntu 答案。

【讨论】:

以上是关于为啥 python 编译器在 tkinder 模块中给我一个错误? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python setuptools 为啥安装模块安装不上是我本来setuptools就安装失败了么

为啥python不会在启动时自动导入每个模块?

为啥 React 不使用接口编译我的本地模块?

为啥 OCaml 中的模块类型注释会导致此代码无法编译?

为啥在我导入模块时 Python 会运行我的模块,如何停止它?

为啥我不能在 Anaconda 之外导入 Python 模块?