2016-01-27 6 views
1

Я пытаюсь использовать жемчужину Ruby для Taglib, чтобы играть с тегами ID3 в практической программе. Я получаю ошибки загрузки, связанные с требованием к драгоценному камню taglib ruby.Ошибка загрузки при требовании taglib-ruby

Я установил камень в мой проект через RubyGems, и я просто требую драгоценного камня, как указано в ряде сообщений:

require 'taglib' 

Эти версии программного обеспечения, я работаю с:

  • рубинового 2.0.0p481
  • TagLib-рубинового (0.7.1)
  • TagLib-1.9.1

Я нахожусь на Mac с Mavericks 10.9.5, используя RubyMine в качестве моей IDE. Я не уверен, что моя установка верна для taglib (оригинал, а не оболочка Ruby). Я использовал Homebrew для загрузки файла .tar.gz, а затем распаковал его. Папка Taglib 1.10 находится в моей локальной папке - она ​​должна быть размещена где-то в другом месте?

Как уже упоминалось, мне требуется «taglib» в верхней части моего файла .rb. Ошибка я получаю при попытке запустить этот файл является:

'require': cannot load such file -- taglib (LoadError) 

Я довольно новыми для Руби и SO, так что-нибудь еще мне нужно уточнить, пожалуйста, спрашивайте. Любая помощь будет оценена, спасибо много.

+0

Как вы установили Ruby? Как вы установили драгоценный камень? Похоже, что вы не установили драгоценный камень, просто загрузили его. Требование просто не указывает на то, откуда должен загружаться файл.Я не знаком с драгоценным камнем, но, как правило, устанавливая драгоценные камни с помощью 'gem install ', поместите драгоценные камни в «правильное» место для вашей установки. В зависимости от того, как установлен ваш Ruby, вам может потребоваться использовать 'sudo'. – vgoff

+0

Я установил Ruby с rvm, и RubyMotion работает с моим стандартным Ruby версии 2.0.0p481. Я установил taglib с помощью Homebrew, а затем установил taglib-ruby, используя команду gem install tagliib-ruby из моей директории программы. Список Gem из этого каталога показывает: taglib-ruby (0.7.1) – Shaneydev

ответ

0

На вашем терминале Mac попробуйте ввести gem list. Это должно дать вам список установленных драгоценных камней. Если камень не отображается, введите gem install "gem-name", чтобы установить его.

+0

Да, в списке gem показан taglib-ruby (0.7.1), который был успешно установлен в папке проекта. Я не знаю, почему требование не собирает это. Мне интересно, что-то связано с моей установкой библиотеки taglib (написанной на C++), которая не позволяет работать с оболочкой taglib-ruby. Должен ли taglib (C++ один) отображаться в моем списке драгоценных камней (это не так) или быть установленным где-то соответствующим, или есть ли какие-то указания на эту библиотеку, которые я должен сделать, чтобы заставить taglib-ruby работать? Спасибо – Shaneydev

+0

Я должен отметить, что я установил, удалил и переустановил API taglib. Моя установка - это не что иное, как: «brew install taglib», который загружает файл .tar.gz. Я распаковал этот файл из папки моих загрузок, и это так же, как и в части taglib (C++). – Shaneydev

+0

В соответствии с документацией следующие шаги: установка taglib с заваркой: 'brew install taglib', а затем установить gem' gem install taglib-gem' – 0r4cl3

1

Если вам нужен файл, файл должен быть либо в вашей переменной $LOAD_PATH для Ruby, либо явно указан в строке require.

Ошибка, которую вы указали, относится к этому вопросу. Команда require оставляет за собой расширение, так как оно будет загружать другие типы файлов, кроме Ruby, если они доступны. Дополнительную информацию см. В документации по методу require.

Если вы установили библиотеку в ~/my_projects/music_analyzer/taglib_unzip_folder, вы можете использовать require '~/my_projects/music_analyzer/taglib_unsip_folder/taglib, и сообщения об ошибках должны измениться.

Если вы установили камень, и с помощью RVM, вы не должны использовать sudo, но следует использовать gem install taglib-ruby

И в этом случае вам не нужно будет указать имя папки, поскольку путь будет включен в пути загрузки Ruby.

Если вы используете среду IDE и что среда IDE не использует одну и ту же среду, то в конечном итоге вы столкнетесь с проблемами загрузки, поскольку ваша установка и среда среды IDE могут быть не идентичными.

Вместо использования IDE вы можете проверить это прямо на терминале, используя irb.

>> require 'taglib' 
=> true 
+0

Спасибо vgoff, действительно полезный ответ, который хорошо написан для нового ученика. Это очень помогло в этом. ура – Shaneydev