require:无法加载这样的文件 - mysql2

时间:2014-02-11 10:23:26

标签: ruby-on-rails ruby

我知道这样的问题很少,但似乎没有问题解决我的问题。 我有一个我想要运行的脚本 - my_script.rb 我使用ruby-2.0.0-p353rubygems 2.2.2 我已经通过rvm安装了它。当切换到使用我定制的宝石集时,gem env说:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 2.0.0 (2013-11-22 patchlevel 353) [x86_64-linux]

我在my_script.rb中使用:

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

require 'mysql2'

我已经通过bundler安装了宝石,宝石列表说:

Installing i18n (0.6.9) 
Installing multi_json (1.8.2) 
Installing activesupport (3.2.8) 
Installing builder (3.0.4) 
Installing activemodel (3.2.8) 
Installing activerecord (3.2.8) 
Installing treetop (1.4.15) 
Installing mime (0.2.0) 
Installing mysql2 (0.3.14) 
Using bundler (1.3.5)
Your bundle is complete!
It was installed into ./vendor/bundle

注意:my_script.rb/vendor/bundle位于同一目录

现在问题

那为什么要说

kernel_require.rb:55:in `require': cannot load such file -- mysql2 (LoadError)

当我尝试使用./my_script

运行我的脚本时

更新

对自己的更新:) 如果发生此错误,请尝试使用bundle exec运行脚本,因为这是在bundle中安装gem的主要目的:) 我一直在运行脚本的方式与我在服务器上使用的方式相同,但所以我忘记了最明显和最合乎逻辑的方法 - 使用bundle exec ./my_script.rb运行它,因为这是此主要目标;)< / p>

1 个答案:

答案 0 :(得分:1)

您已经通过捆绑包安装了它们,因此您应该让捆绑商需要宝石。将以下内容添加到脚本的顶部:

require 'bundler'
Bundler.require 

希望它有所帮助。