Ruby:无法加载此类文件 - LoadError

Posted

技术标签:

【中文标题】Ruby:无法加载此类文件 - LoadError【英文标题】:Ruby: cannot load such file - LoadError 【发布时间】:2015-01-22 14:41:18 【问题描述】:

我收到此“要求”无法加载此类文件错误。

我之前得到了这个,我添加了

__LIB_DIR__ = File.expand_path(File.join(File.dirname(__FILE__), ".."))
unless $LOAD_PATH.include?(__LIB_DIR__)
  $LOAD_PATH.unshift(__LIB_DIR__)
end

我想知道这是做什么的?我将此添加到我项目的主“要求”文件中。 现在我写一个测试用例,

$:.unshift File.join(File.dirname(__FILE__), ".")

我尝试运行它,我得到了 LoadError。我也试过require_relative 不走运。

结构:

Main
  Git
  lib
     files.rb
    base.rb
  test
     test1.rb

我在 base.rb 中有上面的第一个代码块,我在其中执行所有“需要” 当我尝试运行测试时。我得到 LoadError。

'拜托',解释一下第一个和第二个代码块也给我解决办法

【问题讨论】:

这是一个超级混乱的解决方案。你用了什么require_relative 线?那应该行得通。请记住$:$LOAD_PATH 是同一个东西。 能不能给这句话加个“请”:“解释一下第一个和第二个代码块也给我一个解决方案”?这听起来像是一种需求。 听起来你想要月亮。到底是什么问题? 【参考方案1】:

为了清楚起见,而不是

__LIB_DIR__ = File.expand_path(File.join(File.dirname(__FILE__), ".."))

使用

__LIB_DIR__ = File.expand_path('..', File.dirname(__FILE__))

这是做什么的?

除非 $LOAD_PATH.include?(__LIB_DIR__) $LOAD_PATH.unshift(__LIB_DIR__) 结尾

考虑一下:

ary = %w[a b]
ary # => ["a", "b"]
ary.unshift('c')
ary # => ["c", "a", "b"]

我尝试运行它,我得到了 LoadError。我也试过 require_relative 没有运气。

这可能有多种原因,但很遗憾,您没有分享发生这种情况的代码。 requirerequire_relative 都用于加载代码,但在传递的参数中有不同的语法。我们需要知道您要加载的内容,以及与您的调用脚本相关的文件层次结构中的位置。

也许其中一个或相关的问题会有所帮助:

“ruby `require': cannot load such file” “Ruby 'require' error: cannot load such file” “require cannot load such file” “Cannot load files using require”

【讨论】:

以上是关于Ruby:无法加载此类文件 - LoadError的主要内容,如果未能解决你的问题,请参考以下文章

安装 ruby​​-2.1.2:无法加载此类文件 -- openssl (LoadError)

Ruby 雾 gem 导致服务器无法运行:无法加载此类文件 -- xmlrpc/client (LoadError)

错误“...无法加载此类文件 -- mysql2/2.0/mysql2 (LoadError)”。在带有 Ruby 2.0.0 的 Windows XP 上

无法安装 gem - 无法构建 gem 本机扩展 - 无法加载此类文件 - mkmf (LoadError)

错误无法加载此类文件 -- user_agent/browsers/playstation (LoadError)

LoadError: 无法加载此类文件 -- test/unit/error