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
,