rubygem-LoadError

rubygem-LoadError,ruby,gem,mysql2,Ruby,Gem,Mysql2,Ruby新手正在尝试了解如何使用Gem,但到目前为止,体验并不是很好 在通过gem安装mysql2之后,我尝试在一个简单的文件中使用它 require 'mysql2' #client = Mysql2::Client.new(:host => "localhost", :username => "username") 需要“mysql2” #client=Mysql2::client.new(:host=>“localhost”,:username=>“username”) 但当我运行此程序

Ruby新手正在尝试了解如何使用Gem,但到目前为止,体验并不是很好

在通过gem安装mysql2之后,我尝试在一个简单的文件中使用它

require 'mysql2' #client = Mysql2::Client.new(:host => "localhost", :username => "username") 需要“mysql2” #client=Mysql2::client.new(:host=>“localhost”,:username=>“username”) 但当我运行此程序时,我得到:

Parse.rb:1:in `require': no such file to load -- mysql2 (LoadError) from Parse.rb:1 Parse.rb:1:在'require'中:没有这样的文件要加载--mysql2(LoadError) 来自Parse.rb:1 然而,我的gem列表包含mysql2:

Tanner-Smiths-MacBook-Pro:Humans_vs_Zombies_Parse tanner$ gem list *** LOCAL GEMS *** abstract (1.0.0) actionmailer (3.0.1, 2.3.5, 1.3.6) actionpack (3.0.1, 2.3.5, 1.13.6) actionwebservice (1.2.6) activemodel (3.0.1) activerecord (3.0.1, 2.3.5, 1.15.6) activeresource (3.0.1, 2.3.5) activesupport (3.0.1, 2.3.5, 1.4.4) acts_as_ferret (0.4.3) arel (2.0.2) builder (2.1.2) capistrano (2.5.19, 2.5.2) cgi_multipart_eof_fix (2.5.0) daemons (1.1.0, 1.0.10) dnssd (1.4, 0.6.0) erubis (2.6.6) fastthread (1.0.7, 1.0.1) fcgi (0.8.8, 0.8.7) ferret (0.11.6) gem_plugin (0.2.3) highline (1.6.1, 1.5.0) hpricot (0.8.3, 0.6.164) i18n (0.4.2) jk-ferret (0.11.8.2) libxml-ruby (1.1.4, 1.1.2) mail (2.2.9) mime-types (1.16) mongrel (1.1.5) mysql2 (0.2.6) needle (1.3.0) net-scp (1.0.4, 1.0.1) net-sftp (2.0.5, 2.0.1, 1.1.1) net-ssh (2.0.23, 2.0.4, 1.1.4) net-ssh-gateway (1.0.1, 1.0.0) polyglot (0.3.1) rack (1.2.1, 1.0.1) rack-mount (0.6.13) rack-test (0.5.6) rails (2.3.5, 1.2.6) railties (3.0.1) rake (0.8.7, 0.8.3) RedCloth (4.2.3, 4.1.1) ruby-openid (2.1.8, 2.1.2) ruby-yadis (0.3.4) rubynode (0.1.5) sqlite3-ruby (1.3.2, 1.2.4) termios (0.9.4) thor (0.14.4) treetop (1.4.8) tzinfo (0.3.23) xmpp4r (0.5, 0.4) Tanner Smiths MacBook Pro:人类与僵尸 ***本地宝石*** 摘要(1.0.0) actionmailer(3.0.1、2.3.5、1.3.6) actionpack(3.0.1、2.3.5、1.13.6) actionwebservice(1.2.6) activemodel(3.0.1) activerecord(3.0.1、2.3.5、1.15.6) activeresource(3.0.1、2.3.5) activesupport(3.0.1、2.3.5、1.4.4) 扮演雪貂(0.4.3) 阿雷尔(2.0.2) 建造商(2.1.2) 卡皮斯特拉诺(2.5.19,2.5.2) cgi_多部分eof_修复(2.5.0) 守护进程(1.1.0、1.0.10) dnssd(1.4,0.6.0) erubis(2.6.6) fastthread(1.0.7,1.0.1) fcgi(0.8.8,0.8.7) 雪貂(0.11.6) gem_插件(0.2.3) 高端(1.6.1、1.5.0) hpricot(0.8.3,0.6.164) i18n(0.4.2) jk雪貂(0.11.8.2) libxml ruby(1.1.4、1.1.2) 邮件(2.2.9) mime类型(1.16) 杂种狗(1.1.5) mysql2(0.2.6) 针(1.3.0) 净scp(1.0.4,1.0.1) 净sftp(2.0.5、2.0.1、1.1.1) net ssh(2.0.23、2.0.4、1.1.4) net ssh网关(1.0.1、1.0.0) polyglot(0.3.1) 机架(1.2.1、1.0.1) 机架安装(0.6.13) 机架测试(0.5.6) 轨道(2.3.5、1.2.6) 铁路(3.0.1) 耙(0.8.7,0.8.3) 红布(4.2.3、4.1.1) ruby openid(2.1.8、2.1.2) ruby yadis(0.3.4) rubynode(0.1.5) SQLite3Ruby(1.3.2,1.2.4) termios(0.9.4) 雷神(0.14.4) 树梢(1.4.8) tzinfo(0.3.23) xmpp4r(0.5,0.4) “ruby env”的结果:

RubyGems环境: -RUBYGEMS版本:1.3.5 -RUBY版本:1.8.7(2009-06-12补丁级别174)[通用-达尔文10.0] -安装目录:/Library/Ruby/Gems/1.8 -RUBY可执行文件:/System/Library/Frameworks/RUBY.framework/Versions/1.8/usr/bin/RUBY -可执行目录:/usr/bin -RUBYGEMS平台: -红宝石 -环球达尔文10号 -宝石路径: -/Library/Ruby/Gems/1.8 -/Users/tanner/.gem/ruby/1.8 -/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/Ruby/gems/1.8 -GEM配置: -:update_sources=>true -:verbose=>true -:benchmark=>false -:backtrace=>false -:批量_阈值=>1000 -远程来源: - http://gems.rubyforge.org/ 我做错了什么?我想不出来

谢谢

-Tanner

试试:

require 'rubygems'
require 'mysql2'

要获取更多信息,请启动irb并运行:

require 'rubygems' gem 'mysql2' #=> does this cause an error? $:.grep /mysql2/ #=> if no error from previous line, please post what this shows 需要“rubygems” gem'mysql2'#=>这会导致错误吗? $:.grep/mysql2/#=>如果前一行没有错误,请发布此显示的内容 同样在终端提示下,运行“gem contents mysql2”。 您是否看到以以下内容结尾的路径

lib/mysql2/error.rb lib/mysql2/mysql2.bundle lib/mysql2/client.rb lib/mysql2/result.rb lib/mysql2.rb lib/mysql2/error.rb lib/mysql2/mysql2.bundle lib/mysql2/client.rb lib/mysql2/result.rb lib/mysql2.rb
正如您可能注意到的,您已经安装了多个版本的ruby。我强烈建议您使用来管理多个ruby版本

这是一种猜测,但如果您不使用命令行运行应用程序,并且使用诸如TextMate之类的工具,则可能需要设置一个shell变量“TM_RUBY”,以指向安装了rubygems的RUBY版本(1.8.7(2009-06-12 patchlevel 174))

您可以尝试:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/irb
要使用安装了rubygems的irb版本,请尝试:

require 'rubygems'
require 'mysql2'

如果这是可行的,并且您对此感到满意,那么您可以更新/usr/bin/ruby、/usr/bin/irb、/usr/bin/gem中的符号链接,指向旧版本的ruby,或者再次安装RVM,让您的生活更加轻松

你的
gem env
输出是什么样子的?@Tanner:你喜欢这个问题吗?运行“require'rubygems'”会带来同样的错误:“LoadError:没有这样的文件要加载--rubygems”从“gem contents mysql2”中我可以找到lib/mysql2/mysql2.bundleb基于此,似乎有两个问题。让我们一次拿一个。Rubygems无法加载,因为您甚至不需要它。你还需要其他宝石吗?你有不止一个版本的ruby吗?在irb中,Config::Config['bindir']的值是多少?在irb中,使用此选项搜索rubygems.rb:$:.each{dir | files=dir[File.join(dir,'gem.rb');如果files.any?},则放置文件;另外,在终端上,运行:head-1`whichgem`(在反引号中)。您应该看到gem命令正在使用的ruby可执行文件。它的目录是否与您从irb获得的Config::Config['bindir']的值匹配?我不需要任何其他gem,而且据我所知,我没有多个版本的ruby。我无法在irb中运行Config::Config['bindir'],因为它会抛出一个错误,即Config是一个未初始化的常量。从今以后,我无法搜索rubygems.rb。运行head-1
哪个gem
会导致:#/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/rubyI注意到“Ruby-v”给出了这个输出“Ruby 1.8.7(2010-08-16 patchlevel 302)[i686-darwin10]”,而在“gem env”中返回“1.8.7(2009-06-12 patchlevel 174)[universal-darwin10.0]”。我想我不确定我可能有多少版本的ruby。我猜这两个应该是一样的?我有几乎完全相同的问题,你找到解决办法了吗?
require 'rubygems'
require 'mysql2'