微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby需要问题与$ LOAD_PATH有关

如何解决ruby需要问题与$ LOAD_PATH有关

| 我正在尝试使用刚安装的宝石(通过
sudo gem install excelsior
),就像这样   需要\'rubygems \'      要求“精益求精”      ... 这在irb中工作正常,但是当我将完全相同的代码粘贴到.rb文件中并尝试与ruby一起运行时,我得到
<internal:lib/rubygems/custom_require>:29:in require\': no such file to load -- excelsior (LoadError)
我猜想这与irb中的加载路径与ruby完全不同有关(我在Mac上,不记得确切地安装了我正在使用的ruby版本)。 那么,如何将ruby配置为具有与irb相同的加载路径? 一条额外的信息:某些宝石有效,但并非所有:S     

解决方法

        要查看两个可执行文件是否是不同版本的ruby(有人怀疑),请让其执行
puts RUBY_VERSION
    ,        您可以轻松检查irb加载路径中的内容:
irb(main):001:0> $LOAD_PATH
然后,您可以通过使用
-I
选项调用它来识别丢失的目录并将其包含在ruby中(可以多次使用):
ruby -I missing_dir_1 -I missing_dir_2 your_script.rb
编辑: 尽管我尚未进行测试,但有可能通过将Excelsior gem与
sudo
一起安装,将其放置在没有
sudo
的红宝石无法访问的目录中。试试
sudo ruby your_script.rb
。     ,        马鲁说了什么。 您还应该尝试:
ruby -e \'puts $LOAD_PATH\' 
...了解irb有什么区别。 编辑:是否有可能您安装了两个不同版本的ruby?尝试:
type -a ruby
type -a irb
查看它们是否链接到另一个可执行文件,例如\'irb1.8 \'。     ,        我的猜测是irb和ruby在某种程度上运行着不同的ruby版本。
gem env
也可能有帮助。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。