无法从RubyMine启动

时间:2012-03-23 09:34:53

标签: ruby rmagick rubymine

我在Windows 7上遇到RubyMine 4.0.1的问题。 每次我从RubyMine运行包含唯一行

的ruby脚本
require 'rmagick'

我收到了

LoadError: 126: The specified module could not be found.   - C:/Ruby193/lib/ruby/gems/1.9.1/gems/rmagick-2.13.1/lib/RMagick2.so
    from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `require'
    from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require'
    from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from C:/Ruby193/lib/ruby/gems/1.9.1/gems/rmagick-2.13.1/lib/RMagick.rb:11:in `<top (required)>'
    from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `require'
    from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require'
    from C:/Ruby193/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from (irb):1
    from C:/Ruby193/bin/irb:12:in `<main>'

但是当我从cmd运行相同的脚本时,一切正常。 我试图改变运行配置,调整环境变量,但似乎没有任何工作。

1 个答案:

答案 0 :(得分:5)

事实证明,问题是由未更新的系统PATH环境引起的,而该环境未传递给RubyMine进程。仅在机器重启后传递了新的PATH值(注销也应该有帮助)。

要在Windows系统上调试此类问题,使用诸如Process Explorer之类的工具(允许验证实际的过程环境)和Rapid Environment Editor(允许轻松编辑环境并检测路径中的错误)非常方便)。

通常足以重新启动流程以考虑环境变量更改,但是如果使用某些自定义启动器(资源管理器),新进程可能仍会继承其环境,并且还需要重新启动父进程,或者注销/重启。


在此特定情况下,用户已更新系统PATH环境以包含 ImageMagick 目录,其中包含RMagick2.so所需的DLL,但RubyMine进程未获取IDE重新启动后仍然使用没有ImageMagick DLL的值时PATH的新值。系统重启后,RubyMine开始使用新的PATH值,rmagick gem能够找到所有依赖项。