2016-01-27 2 views
1

J'essaie d'utiliser la gemme Ruby wrapper pour Taglib pour jouer avec les balises ID3 dans un programme d'entraînement. Je reçois des erreurs de chargement concernant l'exigence de la gemme Ruby Taglib.Erreur de chargement lors de l'utilisation de taglib-ruby

J'ai installé la pierre précieuse dans mon projet via RubyGems et suis exigeant simplement le bijou comme indiqué dans un certain nombre de messages:

require 'taglib' 

Ce sont les versions de logiciels avec lesquels je travaille:

  • rubis 2.0.0p481
  • taglib-ruby (0.7.1)
  • taglib-1.9.1

Je suis sur un Mac avec Mavericks 10.9.5, en utilisant RubyMine comme IDE. Je ne suis pas sûr si mon installation est correcte pour taglib (l'original, pas l'emballage Ruby). J'ai utilisé Homebrew pour télécharger le fichier .tar.gz, puis décompressé cela. Le dossier Taglib 1.10 est assis dans mon dossier de téléchargement local - devrait-il être placé ailleurs?

Comme mentionné, je demande 'taglib' en haut de mon fichier .rb. L'erreur que je reçois lorsque vous essayez d'exécuter ce fichier est:

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

Je suis assez nouveau pour Ruby et SO donc tout ce que je dois préciser, s'il vous plaît demander. Toute aide serait appréciée, merci beaucoup.

+0

Comment avez-vous installé Ruby? Comment avez-vous installé la gemme? On dirait que vous n'avez pas installé la gemme, juste téléchargé le besoin de simplement ne pointe pas à l'endroit où le fichier doit être chargé.Je ne suis pas familier avec la gemme, mais en général l'installation des pierres précieuses en utilisant 'gem install ' placera les gemmes dans l'emplacement "correct" pour votre installation. Selon la façon dont votre Ruby est installé, vous devrez peut-être utiliser 'sudo'. – vgoff

+0

J'ai installé Ruby avec rvm, et RubyMotion fonctionne avec ma version 2.0.0p481 de Ruby par défaut. J'ai installé taglib en utilisant Homebrew, puis j'ai installé taglib-ruby en utilisant la commande 'gem install tagliib-ruby' depuis le répertoire de mon programme. La liste des gemmes de ce répertoire indique: taglib-ruby (0.7.1) – Shaneydev

Répondre

0

Sur votre terminal Mac, tapez gem list. Cela devrait vous donner la liste des gem installés. Si la gemme n'apparaît pas, tapez gem install "gem-name" pour l'installer.

+0

Oui, la liste gem montre taglib-ruby (0.7.1) comme installé avec succès dans le dossier du projet. Je ne sais pas pourquoi le besoin ne l'emporte pas. Je me demande si le problème est lié à mon installation de la bibliothèque taglib (écrite en C++) qui ne permet pas à la gem taglib-ruby wrapper de fonctionner. Est-ce que le taglib (le C++) apparaitra dans ma liste de gemmes (ce n'est pas le cas) ou sera-t-il installé quelque part, ou y at-il un pointeur vers cette bibliothèque pour que taglib-ruby fonctionne? Merci – Shaneydev

+0

Je dois noter que j'ai installé, supprimé et réinstallé l'API taglib. Mon installation n'est rien de plus que: 'brew install taglib' qui a téléchargé un fichier .tar.gz. J'ai décompressé ce fichier à partir de mon dossier de téléchargements et c'est autant que j'ai fait sur la partie taglib (C++). – Shaneydev

+0

Selon la documentation, les étapes à suivre sont les suivantes: install taglib avec brew: 'brew install taglib' et installez ensuite la gem' gem install taglib-gem' – 0r4cl3

1

Lorsque vous avez besoin d'un fichier, le fichier doit être dans votre variable $LOAD_PATH pour Ruby, ou explicitement indiqué dans la chaîne require.

L'erreur que vous avez indiquée est spécifique à ceci. La commande require quitte l'extension, car elle chargera d'autres types de fichiers que Ruby s'ils sont disponibles. Consultez la documentation sur la méthode require pour plus d'informations. Si vous avez installé la bibliothèque dans ~/my_projects/music_analyzer/taglib_unzip_folder, vous pouvez utiliser require '~/my_projects/music_analyzer/taglib_unsip_folder/taglib et les messages d'erreur doivent changer.

Si vous avez installé la pierre précieuse, et que vous utilisez RVM, vous ne devriez pas utiliser sudo, mais devrait utiliser gem install taglib-ruby

Et dans ce cas, vous auriez pas besoin de spécifier le nom du dossier, que le chemin serait inclus dans le chemin de chargement de Ruby. Si vous utilisez un IDE, et que IDE n'utilise pas le même environnement, vous aurez des problèmes de chargement, car votre installation et l'environnement de l'EDI peuvent ne pas être identiques. Au lieu d'utiliser l'IDE, vous pouvez tester ces choses directement sur le terminal, en utilisant irb.

>> require 'taglib' 
=> true 
+0

Merci vgoff, une réponse vraiment utile qui est bien écrite pour un nouvel apprenant. Ça a beaucoup aidé à ça. À votre santé – Shaneydev