gpt4 book ai didi

ruby - Gem 在 irb 中加载但不在控制台中加载

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

这个让我抓狂。我可以通过 irb 加载 gem:

steve@server:/var/www/listings$ irb
irb(main):001:0> Gem.path
=> ["/home/steve/.gem/ruby/1.9.1", "/usr/local/ruby/lib/ruby/gems/1.9.1"]
irb(main):002:0> require 'nokogiri'
=> true

但我无法通过 Rails 控制台加载它:

irb(main):001:0> Gem.path
=> ["/home/steve/.gem/ruby/1.9.1", "/usr/local/ruby/lib/ruby/gems/1.9.1"]
irb(main):002:0> require 'nokogiri'
=> false

gem (nokogiri) 已安装

steve@server:/var/www/listings$ gem which nokogiri
/usr/local/ruby/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3.1/lib/nokogiri.rb

并且 bundle 同意

steve@server:/var/www/listings$ bundle show nokogiri
/usr/local/ruby/lib/ruby/gems/1.9.1/gems/nokogiri-1.4.3.1

但是,当然,rake spec 失败了

/usr/local/ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.0.1/lib/active_support/dependencies.rb:304:in `rescue in depend_on': No such file to load -- Nokogiri (LoadError)

其他环境信息:

steve@server:/var/www/listings$ ruby --version
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
steve@server:/var/www/listings$ rails --version
Rails 3.0.1
steve@server:/var/www/listings$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i686-linux]
- INSTALLATION DIRECTORY: /usr/local/ruby/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /usr/local/ruby/bin/ruby
- EXECUTABLE DIRECTORY: /usr/local/ruby/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/local/ruby/lib/ruby/gems/1.9.1
- /home/steve/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/

有什么建议吗??

编辑

顺便说一句,Nokogiri 在 Gemfile 中,并且 bundle 安装完成,没有任何提示。

这是我要从 Windows 迁移到 Ubuntu 的项目。在 Windows 上它工作正常(够奇怪了!)所以我很确定这是环境问题。

最佳答案

如果该文件已经加载,则 require 返回 false。通过连续执行两次 require 语句在您的 irb session 中尝试一下。第二个将返回 false:

irb(main):001:0> require 'nokogiri'
=> true
irb(main):002:0> require 'nokogiri'
=> false

如果找不到文件,require 将引发一个 LoadError。

您的异常消息(没有要加载的文件 -- Nokogiri)使它看起来像是需要“Nokogiri”而不是“nokogiri”,这在区分大小写的操作系统上可能是个问题。

关于ruby - Gem 在 irb 中加载但不在控制台中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4115653/

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