我有一个试图要求restclient模块的
Ruby脚本.当我将它减少到这一行时,它仍然会失败:
#!/usr/bin/env ruby require 'restclient'
当我运行它时,我收到以下错误:
./test.rb:3:in `require': no such file to load -- restclient (LoadError) from ./test2.rb:3
当我运行irb时,模块加载正常:
$irb >> require "restclient" => true >>
据我所知,看起来脚本和irb都有相同的模块路径:
$ruby -e "puts $:" /Library/Ruby/Site/1.8 /Library/Ruby/Site/1.8/powerpc-darwin10.0 /Library/Ruby/Site/1.8/universal-darwin10.0 /Library/Ruby/Site /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 . $irb >> puts $: /Library/Ruby/Site/1.8 /Library/Ruby/Site/1.8/powerpc-darwin10.0 /Library/Ruby/Site/1.8/universal-darwin10.0 /Library/Ruby/Site /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby/1.8/universal-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/vendor_ruby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/powerpc-darwin10.0 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 . => nil >>
什么会导致模块通过irb加载,但不是直接通过Ruby运行?
另一个令人困惑的细节是,restclient gem似乎并不在我的开头. irb如何找到它?
$locate restclient | grep gems /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/bin/restclient /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/abstract_response.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/exceptions.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/net_http_ext.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/payload.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/raw_response.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/request.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/resource.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient/response.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/lib/restclient.rb /Library/Ruby/Gems/1.8/gems/rest-client-1.6.1/spec/restclient_spec.rb
谢谢 – 马克