我在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运行相同的脚本时,一切正常。 我试图改变运行配置,调整环境变量,但似乎没有任何工作。
答案 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能够找到所有依赖项。