Ruby + Eclipse +“Dynamic Languages Toolkit for Ruby”插件

时间:2013-12-10 10:52:11

标签: ruby eclipse eclipse-plugin require dltk

我在eclipse中安装了 Dynamic Languages Toolkit for Ruby 插件,但它无法正常工作:

详细信息:

  • Eclipse版本: Eclipse 4.2.2
  • 操作系统详细信息: Ubuntu 10.04
  • Ruby版本: ruby​​ 1.9.2p180

这是我的红宝石代码:

# cat array.rb 
#!/usr/bin/ruby
require "awesome_print"

hash = {
        :name => "your_self",
        :place => ["where", "somewhere"],
} 
ap hash

这是从eclipse运行的错误:

<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- awesome_print (LoadError)

HOwever,我可以手动从控制台运行此代码,它为我提供了输出:

# ruby array.rb 
{
     :name => "your_self",
    :place => [
        [0] "where",
        [1] "somewhere"
    ]
}

毋庸置疑,我确实安装了awesome_print gem:

# gem list | grep awesome
awesome_print (1.2.0)

在Eclipse中,我确实设置了ruby解释器,如下所示: enter image description here

问题:只有在我的代码中使用require时才会出现此问题。否则Eclipse可以运行ruby代码。我的日食中缺少什么?

更新

如果我使用:

require "/usr/local/lib/ruby/gems/2.0.0/gems/awesome_print-1.2.0/lib/awesome_print.rb"

然后Eclipse能够正常运行代码。所以我认为这与某些东西的ruby / eclipse search path有关。

1 个答案:

答案 0 :(得分:0)

奇怪的事情正在发生。我不得不#!/usr/bin/ruby而不是#!/usr/local/bin/ruby

我必须在eclipse中对ruby解释器设置进行类似的更改。现在我的代码工作正常。

所以,现在我意识到我确实安装了两个版本的ruby:

# /usr/bin/ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [i686-linux]
# /usr/local/bin/ruby -v
ruby 2.0.0p353 (2013-11-22 revision 43784) [i686-linux]

我不知道如何安装版本2.0.0

我只安装了1.9.2。然后运行gem install awesome_print

因此,如果我更改shebangeclipse以使用ruby 2.0.0,那么它运行正常。可能我的awesome_print仅安装了2.0.0

这太令人困惑了。无论如何。我现在好。 Ruby学习!!!

但话又说回来,为什么即使使用ruby verion 1.9.2我也可以从命令行运行相同的程序?

<强>更新

所以,我错了,当我运行ruby array.rb时,它实际上正在运行/usr/local/bin/ruby,因此它可以从命令行运行。但是在eclipse中,我将ruby解释器设置为/usr/bin/ruby 1.9.2.并且它给出了错误。

我可以通过运行/usr/bin/ruby array.rb从命令行重现相同的错误。

因此...

这意味着,我安装ruby 1.9.2并不好。我仍然不知道ruby 2.0.0来自哪里。但是现在,我应该卸载并删除1.9.2