从 Cygwin 启动 python IDLE 时 Tkinter 中的 tcl_error
Posted
技术标签:
【中文标题】从 Cygwin 启动 python IDLE 时 Tkinter 中的 tcl_error【英文标题】:tcl_error in Tkinter when launching python IDLE from Cygwin 【发布时间】:2014-12-20 17:16:15 【问题描述】:我尝试从 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.bat
文件以cygstart idle.bat
启动IDLE
。
我搜索了此错误的解释,但找不到。我还在 cygwin 中添加了 IDLE
作为环境变量。当我执行printenv
时,它显示为一个环境变量。以防万一这是问题所在,我尝试了两个环境变量:
idle=C:\Python27\Lib\idlelib\idle.bat
PATH = cygdrive/c/Python27/Lib/idlelib
我还安装了 cygwin IDLE
软件包。
可能是什么问题?
【问题讨论】:
【参考方案1】:尝试设置 DISPLAY 环境变量
导出显示=:0.0
并确保您正在运行 cygwin-x 服务器(即 Xwin 服务器)
您可以将导出添加到您的 .bash_rc 文件中,以便在每次启动 cygwin 时设置它。
【讨论】:
它给了我另一个关于couldn't connect to display "0:0"
的错误我如何确保cygwin-x服务器正在运行?谢谢@ben
如果您已安装,只需单击开始菜单并搜索 Xwin Server 即可打开它。注意:您可以关闭弹出窗口,它仍在运行,至少在我的盒子上。如果您没有安装它,您应该前往x.cygwin.com 并阅读如何安装它。【参考方案2】:
chaps提供的答案完全解决了我的问题。 (我在 Windows 10 上。)我使用 Cygwin 安装程序(“从 Internet 安装”选项)通过从顶部的下拉菜单中选择“完整”(而不是默认的“待处理”)选项来更新我现有的 Cygwin 安装Cygwin 安装程序的左侧,仅安装包 xorg-server、xinit、xorg-docs 和 xlaunch。 (我对任何远程功能不感兴趣,只对使用 tkinter 和 python3 来执行诸如显示文件对话框控件之类的操作。)我在我的任务栏中放置了 xlaunch 的快捷方式并使用其默认设置启动它,然后添加了 export DISPLAY=:0.0到我的环境并运行 tkinter 测试套件。它工作得很好。
【讨论】:
以上是关于从 Cygwin 启动 python IDLE 时 Tkinter 中的 tcl_error的主要内容,如果未能解决你的问题,请参考以下文章