【问题标题】:cannot load such file -- mechanize.rb (LoadError) on OSX 10.6无法在 OSX 10.6 上加载此类文件 - mechanize.rb (LoadError)
【发布时间】:2018-02-16 11:43:02
【问题描述】:

我有一个简单的脚本:

require 'rubygems'
require 'mechanize'
p 'Success!'

当我运行脚本时,我得到:

/Users/.../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mechanize.rb (LoadError)
from /Users/.../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from test.rb:2:in `<main>'

无奈之下,我安装了 RVM 并从系统 1.8.7 更新了 ruby​​。然而,我仍然遇到与安装 rvm 之前相同的错误。我现在正在跑步:

mute:nfg ..$ ruby -v
ruby 1.9.3p385 (2013-02-06 revision 39114) [x86_64-darwin10.8.0]

irb 报告相同:

1.9.3p385 :001 > require 'rubygems'
 => false 
1.9.3p385 :002 > require 'mechanize'
LoadError: cannot load such file -- mechanize
from /Users/../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):2
from /Users/../.rvm/rubies/ruby-1.9.3-p385/bin/irb:16:in `<main>'

我已经多次从项目目录中使用 sudo 和不使用 sudo 重新安装了 mechanize。

我尝试手动要求 gem 及其完整路径。

mute:nfg ..$ ruby -l ~/.gems/gems/mechanize-2.5.1/lib/mechanize.rb
/Users/../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- mime/types (LoadError)
from /Users/../.rvm/rubies/ruby-1.9.3-p385/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/../.gems/gems/mechanize-2.5.1/lib/mechanize.rb:4:in `<main>'

(我也尝试过安装 mime-types。)

RVM 很好地列出了 gem:

mute:nfg ..$ rvm all do gem list
*** LOCAL GEMS ***
...
libxml-ruby (2.3.3, 1.1.2)
mechanize (2.5.1)
mime-types (1.21, 1.19)
...

宝石也是如此:

mute:nfg ..$ gem list
*** LOCAL GEMS ***
...
libxml-ruby (2.3.3, 1.1.2)
mechanize (2.5.1)
mime-types (1.21, 1.19)
...

奇怪的是,$GEM_PATHs ~/.rvm/gems/ruby-1.9.3-p385~/.rvm/gems/ruby-1.9.3-p385@global~/.rvm/gems/ruby-1.9.3-p385@project 看起来大多是空的(第一个是两个 gem,最后一个都没有)。但是,GUI JewelleryBox 确认所有三个宝石都包含Mechanize

编辑:这是 gem env 的结果:

RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.25
  - RUBY VERSION: 1.9.3 (2013-02-06 patchlevel 385) [x86_64-darwin10.8.0]
  - INSTALLATION DIRECTORY: /Users/../.gems
  - RUBY EXECUTABLE: /Users/../.rvm/rubies/ruby-1.9.3-p385/bin/ruby
  - EXECUTABLE DIRECTORY: /Users/../.gems/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-10
  - GEM PATHS:
     - /Users/../.gems
     - /Users/../.gem
     - /usr/lib/ruby/gems/1.8
     - /Library/Ruby/Gems/1.8
     - /usr/bin
  - GEM CONFIGURATION:
 - :update_sources => true
 - :verbose => true
 - :benchmark => false
 - :backtrace => false
 - :bulk_threshold => 1000
 - :sources => ["http://gems.rubyforge.org/", "http://gems.github.com"]
 - "gemhome" => "/Users/../.gems"
 - "gempath" => ["/Users/../.gem", "/usr/lib/ruby/gems/1.8", "/Library/Ruby/Gems/1.8", "/usr/bin"]
- REMOTE SOURCES:
 - http://gems.rubyforge.org/
 - http://gems.github.com

谁能帮忙?

【问题讨论】:

  • 你在安装 gem 之前有没有试过rvm use 1.9.3-p385?如果你在项目目录中运行bundle install
  • 是的,我试过 rvm use 1.9.3-p385 无济于事。 bundle install 告诉我没有安装 bundler 并运行 gem install bundler。我安装了 bundler,但它仍然告诉我运行 gem install bundler。您确定 bundler 是 mechanize 的必需依赖项吗?如果是,gem install mechanize 会直接安装它吗?
  • 你能出示你的gem env吗?
  • 编辑显示 gem env

标签: ruby rvm mechanize-ruby


【解决方案1】:

您的环境设置为使用自定义路径来保存 gem,当您安装到 PATH 中不可用的位置时,这会使 ruby​​gems 感到困惑

运行rvm get head 并仔细阅读输出,它会警告您*gemrc 中破坏rubygems / RVM 的条目

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 2015-01-22
    • 2012-10-25
    • 2020-12-05
    • 2017-03-18
    • 2018-07-31
    相关资源
    最近更新 更多