需要 taglib-ruby 时加载错误

Posted

技术标签:

【中文标题】需要 taglib-ruby 时加载错误【英文标题】:Load Error when requiring taglib-ruby 【发布时间】:2016-01-27 09:51:09 【问题描述】:

我正在尝试使用 Taglib 的 Ruby 包装器 gem 在练习程序中使用 ID3 标记。我收到有关 taglib ruby​​ gem 要求的加载错误。

我已通过 RubyGems 将 gem 安装到我的项目中,并且我只需要许多帖子中所述的 gem:

require 'taglib'

这些是我正在使用的软件版本:

红宝石 2.0.0p481 taglib-ruby (0.7.1) taglib-1.9.1

我在 Mac 上使用 Mavericks 10.9.5,使用 RubyMine 作为我的 IDE。 我不确定我的安装是否适用于 taglib(原始的,而不是 Ruby 包装器)。我使用 Homebrew 下载了 .tar.gz 文件,然后将其解压缩。 Taglib 1.10 文件夹位于我的本地下载文件夹中 - 应该放在其他地方吗?

如前所述,我需要 .rb 文件顶部的“taglib”。我在尝试运行此文件时遇到的错误是:

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

我对 Ruby 和 SO 还很陌生,所以还有什么我需要澄清的,请询问。任何帮助将不胜感激,非常感谢。

【问题讨论】:

你是如何安装 Ruby 的?你是如何安装gem的?看起来您还没有安装 gem,只是下载了它 require 根本没有指向需要从哪里加载文件。我不熟悉 gem,但通常使用 gem install <gemname> 安装 gem 会将 gem 放置在您安装的“正确”位置。根据 Ruby 的安装方式,您可能需要使用 sudo 我用 rvm 安装了 Ruby,并让 RubyMotion 与我的默认 Ruby 版本 2.0.0p481 一起工作。我使用 Homebrew 安装了 taglib,然后使用我的程序目录中的“gem install tagliib-ruby”命令安装了 taglib-ruby。此目录中的 Gem 列表显示:taglib-ruby (0.7.1) 【参考方案1】:

当您需要一个文件时,该文件必须在您的 $LOAD_PATH Ruby 变量中,或者在需要字符串中明确指出。

您发布的错误与此有关。 require 命令不使用扩展名,因为它会加载除 Ruby 之外的其他类型的文件(如果可用)。有关详细信息,请参阅有关 require 方法的文档。

如果您在~/my_projects/music_analyzer/taglib_unzip_folder 中安装了库,那么您可以使用require '~/my_projects/music_analyzer/taglib_unsip_folder/taglib,错误消息应该会更改。

如果你已经安装了gem,并且正在使用rvm,你不应该使用sudo,而应该使用gem install taglib-ruby

在这种情况下,您不需要指定文件夹名称,因为该路径将包含在 Ruby 的加载路径中。

如果您使用的是 IDE,而该 IDE 未使用相同的环境,那么您最终会遇到负载问题,因为您的安装和 IDE 的环境可能不完全相同。

您可以使用 irb 在终端直接测试这些东西,而不是使用 IDE。

>> require 'taglib'
=> true

【讨论】:

感谢 vgoff,非常有用的答案,非常适合新学习者。这对解决这个问题有很大帮助。干杯【参考方案2】:

在您的 Mac 终端上尝试输入 gem list。这应该为您提供已安装 gem 的列表。如果 gem 没有出现,请输入 gem install "gem-name" 来安装它。

【讨论】:

是的,gem 列表显示 taglib-ruby (0.7.1) 已成功安装在项目文件夹中。我不知道为什么要求不接受这个。我想知道问题与我安装的 taglib 库(用 C++ 编写)有关,它不允许 taglib-ruby 包装器 gem 工作。 taglib(C++ 之一)应该出现在我的 gem 列表中(它不是)还是安装在相关的地方,或者是否有一些指向这个库我必须做的事情才能让 taglib-ruby 工作?谢谢 我应该注意到我已经安装、删除并重新安装了 taglib API。我的安装无非是:“brew install taglib”,它下载了一个 .tar.gz 文件。我从我的下载文件夹中解压了这个文件,这和我在 taglib (C++) 部分所做的一样。 根据文档,步骤如下:使用brew安装taglib:brew install taglib然后安装gemgem install taglib-gem

以上是关于需要 taglib-ruby 时加载错误的主要内容,如果未能解决你的问题,请参考以下文章

在页面加载时跟踪 JS CSS 资产错误

重新加载表数据时出现致命错误:展开为零:需要帮助

如何在需要时停止反应材料表加载

Angular 8 - 未加载运行时编译器错误

运行Fiddler时,提示无法加载类型是啥原因

页面加载时不需要的空模态