当我关闭tk-window实例a时,以下几行会导致ipython崩溃。

import visual, Tkinter
a = Tkinter.Tk()
a.update()
display = visual.display(title = "Hallo")
display.exit = 0
visual.sphere()


如果我先关闭视觉显示,则整个终端都会崩溃。我在kubuntu 8.10上运行所有程序。这是一个错误还是我做错了什么?如果这是一个bug:是否有避免的聪明方法?

菲利普干杯

最佳答案

您是否尝试过使用-gthread -tk命令行开关启动ipython?

来自ipython --help

       -gthread,-qthread,-q4thread,-wthread,-pylab

              只能给出其中之一,并且只能作为
              传递给IPython的第一个选项(在任何情况下均无效
              其他位置)。它们为GTK,QT提供线程支持
              和WXWidgets工具包,以及matplotlib库。

              使用前四个选项中的任何一个,IPython开始运行
              图形工具包操作的单独线程,以便
              您可以从内部打开和控制图形元素
              IPython命令行,无阻塞。所有四个提供
              对于GTK,QT3,
              QT4和WXWidgets(通过它们的Python接口)。

              请注意,使用-wthread,您还可以使用-wxversion
              请求使用特定版本的wx的选项。这个
              要求您安装了“ wxversion” Python模块,
              这是最新的wxPython发行版的一部分。

              如果给出了-pylab,则IPython将为mat-加载特殊支持
              plotlib库(http://matplotlib.sourceforge.net),允许
              交互使用其定义的任何后端
              用户的.matplotlibrc文件。它会自动激活GTK,QT
              或选择IPyhton的WX线程(如果选择了matplotlib后端)
              需要它。它还将%run命令修改为正确
              执行(不阻止)任何基于matplotlib的脚本
              最后调用show()。

       -tk -g / q / q4 / wthread选项和-pylab(如果matplotlib为
              配置为使用GTK,QT或WX),通常会阻止Tk
              图形界面。这意味着当GTK,QT或WX
              线程处于活动状态,任何尝试打开Tk GUI的操作都会导致
              死窗口,并可能导致Python解释器
              崩溃。一个额外的选项-tk可用于解决此问题
              问题。仅在以下任何一项之后,它才能作为第二个选项提供
              以上(-gthread,-qthread,q4thread,-wthread或-pylab)。

              如果给出-tk,则IPython将尝试协调Tk线程
              使用GTK,QT或WX。但是,这可能不可靠,并且
              您将必须在平台和Python配置上进行测试
              确定它是否对您有用。 Debian用户有
              报告成功,显然是由于Debian建立
              所有Tcl,Tk,Tkinter和Python都支持pthreads。下
              其他Linux环境(例如Fedora Core 2/3),此选项
              导致了Python解释器的随机崩溃和锁定。
              在其他操作系统(Mac OSX和Windows)下,您需要
              尝试找出原因,因为当前没有用户报告
              可用。

              不幸的是,IPython无法在运行时确定-
              时间-tk是否可以可靠地工作,因此您需要
              在依靠它进行常规工作之前进行一些实验。

关于python - 如何避免由Tkinter,visual和ipython引起的Gdk-error?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/792816/

10-15 16:08