Ruby GTK在无显示环境下失败(Python正常)
看起来,Ruby写的GTK应用程序在没有图形界面的环境下无法运行,而用Python写的应用程序却可以。
这里有一些简单的例子(即使没有gtk主循环),来展示这个现象:
gtktest.py:
#! /usr/bin/python
import gtk
print('the end')
gtktest.rb:
#! /usr/bin/ruby
require "gtk2"
puts('the end')
X窗口环境:
$ ./gtktest.py
the end
$ ./gtktest.rb
the end
非X环境:
$ ./gtktest.py
/usr/lib/pymodules/python2.5/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
warnings.warn(str(e), _gtk.Warning)
the end
$ ./gtktest.rb
/usr/lib/ruby/1.8/gtk2.rb:12:in `init': Cannot open display: (Gtk::InitError)
from /usr/lib/ruby/1.8/gtk2.rb:12
from ./gtktest.rb:2:in `require'
from ./gtktest.rb:2
正如你所看到的,Python版本在有警告的情况下成功运行,而Ruby版本在导入gtk时就直接失败了。
(Python版本即使在有gtk主循环的情况下,也能正常工作,VTE终端还可以进行一些文本处理)
有没有人知道如何让这些Ruby GTK应用程序在非X环境下运行呢?
环境:debian squeeze,python-gtk2,libgtk2-ruby