【问题标题】:Why can't IRB locate the file to "require"?为什么 IRB 无法找到“要求”的文件?
【发布时间】:2013-01-10 11:47:33
【问题描述】:

我在test/ 目录中有一个文件。 该文件是“test.rb”。

当我启动 IRB 并输入:

require 'test'
require_relative 'test'

返回:

LoadError: cannot load such file -- test

和:

LoadError: cannot infer basepath

我的 Ruby 搞砸了吗?

【问题讨论】:

  • 从哪里开始 IRB?
  • 那么,当你启动 IRB 时,Dir.getwd 会说什么?输出正确吗?
  • 你在输入Dir.glob("*")时看到test.rb吗?

标签: ruby


【解决方案1】:

试试require './test'

我认为较新版本的 Ruby 从 Ruby 路径中删除了当前目录。

编辑:

另外,请查看“Why isn't current directory on my Ruby path?”的答案,了解为什么 require_relative 在 irb 中不起作用。

【讨论】:

  • 顺便说一句,解释在那个答案的 cmets 中。
  • require 首先在 irb 中运行:$: << '.' 对我来说。但是,包含文件中的嵌套require '...' 仍然相对于原始工作目录,而不是包含文件。
【解决方案2】:

需要的文件应该与交互式 ruby​​ 存在于同一目录中(对于 Windows)。 例如, 我已经在 C:\ 中安装了 ruby​​。因此,我的交互式 ruby​​ 位于 C:\Ruby22\bin 中。 因此,粘贴所需的文件并在“交互式 ruby​​”中键入 require './file'。

【讨论】:

  • 你可能想提一下为什么包含文件的目录很重要,特别是路径变量如何与交互式 ruby​​ 交互。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 2016-10-27
  • 2014-11-07
  • 1970-01-01
相关资源
最近更新 更多