Ruby + Eclipse + плагин "Dynamic Languages ​​Toolkit for Ruby"

Я установил плагин Dynamic Languages ​​Toolkit для Ruby в eclipse, и он не работает:

Подробности:

  • Версия Eclipse : Eclipse 4.2.2
  • Детали ОС: Ubuntu 10.04
  • Рубиновая версия: ruby 1.9.2p180

Это мой рубиновый код:

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

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

и вот ОШИБКА, когда это запускается из затмения:

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

Однако, я могу запустить этот код из консоли вручную, и он дает мне вывод:

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

Излишне говорить, что у меня есть awesome_print драгоценный камень установлен:

# gem list | grep awesome
awesome_print (1.2.0)

В Eclipse у меня установлен интерпретатор ruby, как показано ниже:

ВОПРОС: Эта проблема видна только когда я использую 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 ответ

Решение

Что-то странное происходит Вместо #!/usr/bin/rubyЯ должен был сделать это #!/usr/local/bin/ruby,

Мне пришлось сделать аналогичные изменения в настройках интерпретатора ruby ​​в Eclipse. Теперь мой код работает нормально.

Итак, теперь я понял, что на самом деле у меня установлены две версии 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

Итак, если я изменю shebang а также eclipse использовать рубин 2.0.0работает нормально. Наверное, мой awesome_print установился только для 2.0.0

Это так запутанно. Тем не мение. Мне хорошо сейчас. Рубиновое обучение!!!

Но опять же, как получилось, что я смог нормально запустить ту же программу из командной строки даже с ruby ​​verion? 1.9.2?

ОБНОВИТЬ:

Итак, я был неправ, когда я побежал ruby array.rb это было на самом деле работает /usr/local/bin/ruby и, следовательно, он работал из командной строки. Но в затмении я установил интерпретатор ruby ​​как /usr/bin/ruby который был 1.9.2. и это давало ошибки.

Я мог воспроизвести ту же ошибку из командной строки, запустив /usr/bin/ruby array.rb,

Так...

Это означает, что моя установка ruby ​​1.9.2 не очень хороша. Я до сих пор не знаю, где рубин 2.0.0 пришли из. Но теперь я должен удалить и избавиться от 1.9.2,

Другие вопросы по тегам