【发布时间】:2014-01-28 12:58:45
【问题描述】:
我是 Ruby 新手,尝试使用 Nokogiri 时遇到了很多麻烦。几个小时以来,我一直在努力寻找解决方案,因此不胜感激。我尝试在其他相关 SO 帖子中搜索和使用解决方案,然后再发布我自己的帖子。当我运行ruby -v 时,我得到:ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux]
(编辑:我已经用updates-alternatives --config ruby 更新了ruby 并选择了/usr/bin/ruby1.9.1,但是当我这样做时ruby -v 现在显示版本1.9.3 WTF 我在这里做错了吗?)
我在~/workspace/ruby/rubycrawler/ 有一个新项目目录,我使用Bundler 安装了正确安装的nokogiri:
Using mini_portile (0.5.2)
Using nokogiri (1.6.1)
Using bundler (1.5.1)
Your bundle is complete!
运行bundle show nokogiri 返回/var/lib/gems/1.9.1/gems/nokogiri-1.6.1。
在我运行脚本的目录中,我有一个名为“index.html”的简单 html 文件。我尝试运行的脚本甚至更简单(或者我是这么认为的):
require 'nokogiri'
page = Nokogiri::HTML(open("index.html"))
puts page.class # Nokogiri::HTML::Document
错误是rubycrawler.rb:1:in 'require': no such file to load -- nokogiri (LoadError)。
我还添加了require 'rubygems',尽管我读到 1.9+ 不需要它并且仍然没有运气。
很多搜索显示“你把这个 gem 放在你的 Gemfile 中了吗?”。所以我生成了一个 Gemfile 并添加了gem 'nokogiri'。我尝试再次运行小脚本并得到相同的错误。我读了“尝试删除 Gemfile.lock。” 所以我做了,但仍然无法让它工作。然后我阅读并尝试在irb 中测试它,所以我测试了“open-uri”和“nokogiri”,这就是我得到的:
irb(main):001:0> require 'open-uri'
=> true
irb(main):003:0> require 'nokogiri'
LoadError: no such file to load -- nokogiri
我真的很难弄清楚这一点,所以真的非常感谢任何帮助。
【问题讨论】: