Ruby 'requires' 抛出 NoMethodError,堆栈跟踪显示 Windows 机器上的 Unix 路径

Ruby 'requires' are throwing NoMethodError's, stack trace shows Unix paths on a Windows machine

正在尝试 运行 一个 ruby 脚本,但它在 'require' 语句上失败,抛出一个奇怪的错误:

代码:

require "rubygems"
require "bundler/setup"
require_relative "plugins/pivotal_rabbitmq_plugin/pivotal_rabbitmq_plugin.rb"
require "newrelic_plugin"

module PivotalAgent
  NewRelic::Plugin::Config.config_file=File.dirname(__FILE__) + "/config/newrelic_plugin.yml"
  NewRelic::Plugin::Run.setup_and_run
end

命令:

ruby pivotal_agent.rb

错误:

/usr/share/rubygems/rubygems/path_support.rb:78:in `path=': undefined method `+' for nil:NilClass (NoMethodError)
        from /usr/share/rubygems/rubygems/path_support.rb:34:in `initialize'
        from /usr/share/rubygems/rubygems.rb:325:in `new'
        from /usr/share/rubygems/rubygems.rb:325:in `paths'
        from /usr/share/rubygems/rubygems.rb:348:in `path'
        from /usr/share/rubygems/rubygems/specification.rb:872:in `dirs'
        from /usr/share/rubygems/rubygems/specification.rb:750:in `stubs'
        from /usr/share/rubygems/rubygems/specification.rb:938:in `find_inactive_by_path'
        from /usr/share/rubygems/rubygems.rb:186:in `try_activate'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:126:in `rescue in require'
        from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:39:in `require'
        from pivotal_agent.rb:2:in `<main>'

知道是什么原因造成的吗?我最初的预感是它与正在为 Unix 格式化的文件路径有关,而这是 Windows 机器上的 运行ning,但我添加了 Ruby PATH,所以我不知道为什么它会在那里而不是 Ruby 实际安装的位置 (C:\Ruby22-x64).

编辑:澄清一下,第一个要求('rubygems')不会抛出错误,但另一个要求和 require_relative 都抛出类似的错误。

不是 100% 确定原因,但是从命令开头删除 'ruby' 修复了它。所以只是 运行

my_script.rb

工作正常,但是 运行

ruby my_script.rb

给出上面的堆栈。