从Cygwin启动python IDLE时,Tkinter中的tcl_error

时间:2014-10-24 19:44:20

标签: python windows tkinter cygwin python-idle

我尝试从cygwin启动IDLE,我收到了以下错误:

Traceback (most recent call last):
  File "/usr/bin/idle", line 5, in <module>
    main()
  File "/usr/lib/python2.7/idlelib/PyShell.py", line 1537, in main
    root = Tk(className="Idle")
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1764, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk,         sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

我可以IDLE文件idle.bat启动cygstart idle.bat

我搜索了这个错误的解释,却找不到。我还在cygwin中添加了IDLE作为环境变量。当我printenv时,它显示为环境变量。为了防止出现问题,我尝试了两个环境变量:

idle=C:\Python27\Lib\idlelib\idle.bat PATH = cygdrive/c/Python27/Lib/idlelib

我也安装了cygwin IDLE包。

可能是什么问题?

2 个答案:

答案 0 :(得分:4)

尝试设置DISPLAY环境变量

  

export DISPLAY =:0.0

并确保您运行的是cygwin-x服务器(即Xwin服务器)

您可以将导出添加到.bash_rc文件中,以便每次启动cygwin时都设置该导出。

答案 1 :(得分:0)

chaps提供的答案完全解决了我的问题。 (我在Windows 10上。)我使用Cygwin安装程序(“从Internet安装”选项)通过从顶部的下拉菜单中选择“完全”(而不是默认的“挂起”)选项来更新现有的Cygwin安装。 Cygwin安装程序的左侧,仅安装软件包xorg-server,xinit,xorg-docs和xlaunch。 (我对任何远程功能都不感兴趣,仅对将tkinter与python3一起使用来执行诸如显示文件对话框控件之类的事情。)我在任务栏中添加了xlaunch的快捷方式,并使用其默认设置启动了它,然后添加了export DISPLAY =:0.0在我的环境中运行tkinter测试套件。效果很好。