当我关闭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/