ruby和irb是否使用不同的模块搜索路径?
发布时间:2020-12-16 22:30:24 所属栏目:百科 来源:网络整理
导读:我有一个试图要求restclient模块的 Ruby脚本.当我将它减少到这一行时,它仍然会失败: #!/usr/bin/env rubyrequire 'restclient' 当我运行它时,我收到以下错误: ./test.rb:3:in `require': no such file to load -- restclient (LoadError) from ./test2.rb:
我有一个试图要求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 谢谢 – 马克 解决方法
尝试
require "rubygems" 在源代码文件中,或使用ruby -rubygems filename.rb启动ruby程序. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |