gpt4 book ai didi

ruby - 在 irb 中发现的 Gem,而不是在 Ruby 中

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:58 26 4
gpt4 key购买 nike

我安装了一些 gem,我正尝试在 Ruby 应用程序中使用它们:

require 'rubygems'
require 'mygem'

但是,当我运行该应用程序时,出现此错误:<internal:lib/rubygems/custom_require>:29:in require': 没有要加载的文件 -- mygem (LoadError)`

但是如果我尝试要求 irb 中的 gem (确保首先“需要'rubygems'),它工作正常。我应该做些什么?我尝试用谷歌搜索这个问题,但不明白。

运行 whichruby , gem , 和 irb显示它们都在 /opt/local/bin/ 中,即,

> which ruby
/opt/local/bin/ruby
> which gem
/opt/local/bin/gem
> which irb
/opt/local/bin/irb

更新以回答提出的问题(是的,irb 和 ruby​​ 指向不同的文件夹):

$LOAD_PATH$:在 irb 中,两者都包含似乎指向 ruby​​ 1.8 文件夹:

/opt/local/lib/ruby/site_ruby/1.8
/opt/local/lib/ruby/site_ruby/1.8/i686-darwin10
/opt/local/lib/ruby/site_ruby
/opt/local/lib/ruby/vendor_ruby/1.8
/opt/local/lib/ruby/vendor_ruby/1.8/i686-darwin10
/opt/local/lib/ruby/vendor_ruby
/opt/local/lib/ruby/1.8
/opt/local/lib/ruby/1.8/i686-darwin10
.

$:在 ruby​​ 中指向 ruby​​ 1.9.1 文件夹:

/usr/local/lib/ruby/site_ruby/1.9.1
/usr/local/lib/ruby/site_ruby/1.9.1/i386-darwin9.8.0
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/vendor_ruby/1.9.1
/usr/local/lib/ruby/vendor_ruby/1.9.1/i386-darwin9.8.0
/usr/local/lib/ruby/vendor_ruby
/usr/local/lib/ruby/1.9.1
/usr/local/lib/ruby/1.9.1/i386-darwin9.8.0

gem env显示

RubyGems Environment:
- RUBYGEMS VERSION: 1.4.1
- RUBY VERSION: 1.8.7 (2010-12-23 patchlevel 330) [i686-darwin10]
- INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /opt/local/bin/ruby
- EXECUTABLE DIRECTORY: /opt/local/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-darwin-10
- GEM PATHS:
- /opt/local/lib/ruby/gems/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- "gempath" => ["/opt/local/lib/ruby/gems/1.8"]
- :sources => ["http://rubygems.org/", "http://gems.github.com", "http://gems.github.com"]
- REMOTE SOURCES:
- http://rubygems.org/
- http://gems.github.com
- http://gems.github.com

Gem.path在 irb 指向

/Users/grautur/.gem/ruby/1.8
/usr/local/lib/ruby/gems/1.8

Gem.path在 ruby 中指向

/Users/grautur/.gem/ruby/1.9.1
/usr/local/lib/ruby/gems/1.9.1

最佳答案

我不确定发生了什么。但是,以下内容可能会有所帮助。

在 irb 中,做

require 'rubygems'
require 'mygem'
puts $:

然后,在 ruby​​ 中,做

require 'rubygems'
puts $:

如果您还没有解决,请向我们展示您得到的结果。

编辑:同时打印出在命令行上执行 gem env 的结果。

编辑 2: 如果您在 irb 和 ruby​​ 中都需要 ruby​​gems 后输入 puts Gem.path,看看会发生什么。参见 thanks to Matt for describing Rubygems

关于ruby - 在 irb 中发现的 Gem,而不是在 Ruby 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6181247/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com