【问题标题】:Ruby 2.0.0 cannot load such file even though gem is installed即使安装了 gem,Ruby 2.0.0 也无法加载此类文件
【发布时间】:2013-11-04 00:48:46
【问题描述】:

我已经尝试了人们在这里谈论的所有其他解决方案,但没有一个有帮助/应用。

我编写了一个需要电子表格 gem 的 Ruby 脚本。当我使用ruby myscript.rb 正常执行脚本时,要求工作正常,但在运行chmod +x myscript.rb,然后尝试使用./myscript.rb 运行程序后,我收到以下错误......

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- spreadsheet (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/fcangialosi/dev/mTC/parse.rb:2:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/fcangialosi/dev/mTC/interpreter.rb:1:in `<top (required)>'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from ./pmcnp.rb:7:in `<main>'

我的脚本开头是这样的:

#!/usr/bin/ruby

require 'rubygems'
require 'spreadsheet'

如果有人有任何想法,我将不胜感激。

【问题讨论】:

  • 试试chmod +r myscript.rb
  • 试过了,现在出现这个错误..../mparse.rb: line 5: require: command not found ./mparse.rb: line 7: interpreter: command not found ./mparse.rb: line 8: interpreter.start: command not found
  • 运行which ruby返回什么?
  • which ruby /Users/fcangialosi/.rbenv/shims/ruby
  • 如果您正在构建一个 gem 并遇到这个问题,那是因为 gem 不在您的 Gemspec 或 Gemfile 中。

标签: ruby gem executable require ruby-2.0


【解决方案1】:

根据您对 cme​​ts 的回答,您正常运行的 ruby​​ 以及安装了您的 gem 的 ruby​​ 是 /Users/fcangialosi/.rbenv/shims/ruby。当您使脚本可执行时,它使用脚本中的提示来了解使用哪个程序来执行脚本。在你的情况下,你有:

#!/usr/bin/ruby

所以这是使用您在 /usr/bin/ruby 中安装的任何 ruby​​ 版本。为了使用您的 rbenv ruby​​ 而不是 /usr/bin/ruby,请将 shebang 行更改为:

#!/usr/bin/env ruby

【讨论】:

  • 现在我知道/usr/bin/*/usr/bin/env * '__')b 之间有什么区别
猜你喜欢
  • 1970-01-01
  • 2011-04-17
  • 1970-01-01
  • 2013-02-13
  • 2015-03-03
  • 1970-01-01
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
相关资源
最近更新 更多