UbuntuWindows10中的tkinter。错误:";没有显示名称和$display环境变量“;

UbuntuWindows10中的tkinter。错误:";没有显示名称和$display环境变量“;,ubuntu,tkinter,windows-10,xserver,xming,Ubuntu,Tkinter,Windows 10,Xserver,Xming,我最近安装了适用于Windows10的Ubuntu应用程序,这样我就可以在课堂上使用它了 我正在遵循一些神秘的任务指示来“尝试tkinter” 我在Ubuntu终端窗口中安装了python3tk软件包,并遵循了其中的说明 然后我执行 ~$ python3 结果 Python 3.5.2 (default, Aug 18 2017, 17:48:00) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "li

我最近安装了适用于Windows10的Ubuntu应用程序,这样我就可以在课堂上使用它了

我正在遵循一些神秘的任务指示来“尝试tkinter”

我在Ubuntu终端窗口中安装了python3tk软件包,并遵循了其中的说明

然后我执行

~$ python3
结果

Python 3.5.2 (default, Aug 18 2017, 17:48:00)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
然后执行以下命令:

>>> import tkinter
>>> tkinter.Tk()
产生的错误如下:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.5/tkinter/__init__.py", line 1871, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, 
wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python3.5/tkinter/_init__.py”,第1871行,in__init__
self.tk=\u tkinter.create(屏幕名、基本名、类名、交互式、,
wantobjects、useTk、同步、使用)
_tkinter.TclError:没有显示名称和$display环境变量
已解决:

注意:这是在Windows10中使用Ubuntu应用程序时出现的

安装

在安装过程中,有一个选项可将显示设置为0


添加行
export DISPLAY=:0到建议的
.bashrc

我也遇到了同样的问题。我最近从应用商店安装了“Bash on Ubuntu on Windows”应用程序,在运行试图创建python UI的python脚本时出现以下错误:

_tkinter.TclError: no display name and no $DISPLAY environment variable
我遵循@Zach的指示,但我的问题仍然存在。这就是我在跟随@Zach之后解决问题的方法

  • 我首先安装了用于Windows的XMingX服务器
  • 然后,我进入Ubuntu终端上的主目录
    ~
    ,通过执行
    vim.bashrc
    打开我的.bashrc文件
  • 在文件末尾,我添加了以下行:
    export DISPLAY=:0。我用了“导出”而不是“执行”
  • 在尝试执行python脚本之前,请确保关闭所有终端实例


    这对我很有效

    如果您不想安装


    然后在windows中使用CMD,它就可以正常工作。

    这对您有帮助吗?情况不同,因为我没有使用ssh。一切都在我自己的机器上。我更新了我的帖子,以便更好地澄清。从那篇文章中可能会获得一些见解(读过很多类似的文章),但我不知道如何将这些文章中的信息应用到我的情况中。好吧,冒着问显而易见的问题的风险,是否有名为
    $DISPLAY
    的环境变量?当tcl/tk for linux尝试连接到X服务器时,会出现错误消息。我的猜测是,你必须告诉Ubuntu这样做,或者告诉tcl/tk不要寻找。我也不知道。(前面问题的解决方案是告诉matplotlib不要查找X服务器。)请详细说明您实际做了什么。您应该直接运行Python,而不是通过空闲运行。也许你做了前者,尽管有标记,因为我怀疑IDLE在调用tkinter.Tk()时会失败。我使用Linux,并且有
    DISPLAY=:0
    。我可以在命令行
    DISPLAY=:0
    export DISPLAY=:0
    中更改此设置。或者我可以把它放在文件
    .bashrc
    中,每次我登录时都会执行该文件,所以我不必手动执行。是的。我不会打字。或者很明显,我不知道“导出”和“执行”之间的区别。Drrrrr.had在运行gitk命令时出现问题。现在工作很好,谢谢你的回答