Не удается загрузить гем Nokogiri при запуске файла .rb из текстового редактора, но он отлично работает в командной оболочке Ruby.

Я использую текстовый редактор Scintilla и Sublime Text 2.

Всякий раз, когда я использую их для запуска скрипта Ruby, содержащего:

require 'nokogiri'

... Я получаю эту ошибку:

C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- nokogiri (LoadError)
from C:/Program Files (x86)/ruby-1.9.2/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from C:/Users/MY_RUBY_SCRIPT.rb:3:in `<main>'

Я использую Ruby 1.9.3 и обязательно требую rubygems, но все равно получаю ошибку.

Однако, когда я запускаю скрипт из командной строки с Ruby, скрипт работает нормально.

Кто-нибудь знает, почему скрипт не работает в текстовых редакторах, но не в командной строке?


person user1626730    schedule 03.09.2012    source источник


Ответы (2)


Возможно, ваш редактор использует другую версию Ruby. Вы можете проверить, запустив

puts RUBY_VERSION
person Patrick Oscity    schedule 03.09.2012
comment
Это 1.9.2. Хм, я не знаю, что делать. Я еще никогда так много не возился с текстовым редактором. Есть идеи? - person user1626730; 03.09.2012
comment
В настройках вашего редактора вы должны иметь возможность настроить переменную PATH. Вы используете rvm или что-то в этом роде? - person Patrick Oscity; 03.09.2012
comment
Я не думаю, что использую rvm. Есть ли способ сказать? Насколько я знаю, я его не устанавливал. Я не уверен, что могло измениться за последнюю неделю, что заставило текстовых редакторов сделать это - person user1626730; 04.09.2012
comment
Хорошо, другой вопрос: как вы управляете разными версиями Ruby? - person Patrick Oscity; 04.09.2012
comment
Мне очень жаль, падде, я не понимаю, что означает этот вопрос. Как вы могли догадаться, я новичок в Ruby (и в программировании в целом). - person user1626730; 04.09.2012
comment
Если это поможет, я просто запустил код через SciTE на другом компьютере, и он работал нормально. - person user1626730; 04.09.2012
comment
Кажется, вы установили несколько версий ruby. Один из способов сделать это — использовать rvm, Ruby Version Manager. Если вы не знаете rvm, вы, вероятно, не используете его. Итак, как вы установили 1.9.3? Была ли у вас установлена ​​другая версия Ruby раньше? - person Patrick Oscity; 04.09.2012
comment
padde, как оказалось, в последние дни я случайно установил 1.9.2. Оказывается, после удаления ruby ​​1.9.2 скрипты снова заработали. Спасибо за вашу помощь - person user1626730; 11.09.2012

Оказывается, у меня были установлены и Ruby 1.9.2, и 1.9.3, что вызвало конфликт в SciTE, который пытался найти драгоценный камень в Ruby 1.9.2 вместо 1.9.3. Я удалил 1.9.2, и скрипт работал нормально. Если мне понадобится 1.9.2 в будущем, полагаю, мне придется изучить RVM.

person user1626730    schedule 11.09.2012