似乎 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挤压,python-gtk2,libgtk2-ruby