当我简单地使用
运行我的 ruby 脚本时require 'mysql'
在文本配合中失败并出现以下错误:
LoadError: cannot load such file — mysql
method require in kernel_require.rb at line 54
method require in kernel_require.rb at line 54
method <main> in Test.rb at line 1
但是,如果我在终端中通过 irb 运行它,则 require 'mysql' 返回 true,并且我能够创建连接并查询数据库。
请告诉我为什么我的 textmate 脚本无法加载 mysql gem,但终端中的 irb 可以。
谢谢
更新
当我在终端中运行 gem env 时,我得到:
RubyGems Environment:
- RUBYGEMS VERSION: 2.2.2
- RUBY VERSION: 2.1.5 (2014-11-13 patchlevel 273) [x86_64-darwin14.0]
- INSTALLATION DIRECTORY: /Users/(useraccount)/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0
- RUBY EXECUTABLE: /Users/(useraccount)/.rbenv/versions/2.1.5/bin/ruby
- EXECUTABLE DIRECTORY: /Users/(useraccount)/.rbenv/versions/2.1.5/bin
- SPEC CACHE DIRECTORY: /Users/(useraccount)/.gem/specs
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-darwin-14
- GEM PATHS:
- /Users/(useraccount)/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0
- /Users/(useraccount)/.gem/ruby/2.1.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /Users/(useraccount)/.rbenv/versions/2.1.5/bin
- /usr/local/Cellar/rbenv/0.4.0/libexec
- /Users/(useraccount)/.rbenv/shims
- /usr/local/bin
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Users/(useraccount)/.rvm/bin
当我在 text mate 中将 gem env 作为 shell 脚本运行时,我得到:
RubyGems Environment:
- RUBYGEMS VERSION: 2.4.5
- RUBY VERSION: 2.0.0 (2014-05-08 patchlevel 481) [universal.x86_64-darwin14]
- INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
- RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
- EXECUTABLE DIRECTORY: /usr/bin
- SPEC CACHE DIRECTORY: /Users/(useraccount)/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /Library/Ruby/Site
- RUBYGEMS PLATFORMS:
- ruby
- universal-darwin-14
- GEM PATHS:
- /Library/Ruby/Gems/2.0.0
- /Users/(useraccount)/.gem/ruby/2.0.0
- /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/bin
- /bin
- /usr/sbin
- /sbin
- /Users/(useraccount)/Library/Application Support/TextMate/Managed/Bundles/Bundle Support.tmbundle/Support/shared/bin
最佳答案
看起来 Textmate 使用了错误的 ruby。尝试以下 SO 帖子中的说明:Configure Textmate 2 for rbenv
关于mysql - Require 'mysql' 在 Textmate ruby 脚本中失败,但在终端的 irb 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27614803/