Ruby 要求“没有要加载的文件”路径中存在错误但很明显
我一直在尝试获取一个 ruby 文件来需要另一个 ruby 文件,我觉得我快要疯了。我的设置如下
'/raid1/ruby-code/benchmark/' 中的两个文件
CommandRunner Benchmarker
Benchmarker 此时是主程序,并且需要 CommandRunner,我尝试了很多不同的东西,但没有一个起作用。以下是我在 Benchmarker 开头放置的所有内容的列表,
require 'CommandRunner'
require './CommandRunner'
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME)) require 'CommandRunner'
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME)) require './CommandRunner'
我还使用 require_relative 尝试了上述所有排列。我尝试过将文件加载到 emacs 内的 irb 中,并且我在命令行中尝试过。在 irb 中的某个时刻,它会加载一次
require 'CommandRunner'and then would load until I switched it back to './CommandRunner' and then it would load once again.
我实际上遇到了错误,
`require_relative': no such file to load -- /raid1/ruby-code/benchmark/CommandRunner (LoadError)
这是文件的正确路径!
我已经将其切换为加载并且似乎正在工作,我看到奇怪的行为但这可能就是我。有谁知道这里会发生什么吗?
I've been trying to get a ruby file to require another ruby file and I feel like I'm going crazy. My setup is as follows
Two files in '/raid1/ruby-code/benchmark/'
CommandRunner Benchmarker
Benchmarker is the main program at this point and wants to require CommandRunner, I've tried a bunch of different things and none of them work. The following is a list of all of the things I've put at the beginning of Benchmarker
require 'CommandRunner'
require './CommandRunner'
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME)) require 'CommandRunner'
$LOAD_PATH.unshift File.expand_path(File.dirname($PROGRAM_NAME)) require './CommandRunner'
I've also tried all of the above permutations using require_relative. I've tried it loading the file into irb inside of emacs, and I've tried it at the command line. At one point in irb it would load once with
require 'CommandRunner'
and then would load until I switched it back to './CommandRunner' and then it would load once again.
I've actually had the error say
`require_relative': no such file to load -- /raid1/ruby-code/benchmark/CommandRunner (LoadError)
which is the correct path to the file!
I've since switched it to load and that seems to be working, I'm seeing weird behavior but that just might be me. Does anyone have any idea what would be going on here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
文件名是 CommandRunner 而不是 CommandRunner.rb 吗? ruby 文件的标准命名约定是使用小写字母和下划线,因此即使类名是 CommandRunner,文件也将是 command_runner.rb,然后 require 'command_runner' 应该可以工作。
Is the name of the file CommandRunner and not CommandRunner.rb? The standard naming convention for ruby files is to use lowercase and underscores, so even though the class name would be CommandRunner, the file would be command_runner.rb, and then require 'command_runner' should work.