2012-03-23 32 views
5

我有RubyMine的4.0.1问题使用每次我从RubyMine的运行Ruby脚本包含唯一的行不能在Windows 7推出 从RubyMine的

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

你有系统'PATH'环境ImageMagick的dll文件? – CrazyCoder 2012-03-23 11:02:57

+0

是的。一切正常,除非我从RubyMine运行脚本。 – vladhid 2012-03-23 14:45:43

+0

尝试在命令行和RubyMine中使用'p ENV [“PATH”]'运行脚本,它是否产生相同的输出? – CrazyCoder 2012-03-23 16:44:21

回答

5

原来,问题是由不传递到RubyMine的进程更新系统PATH环境造成的。新的PATH值只有在机器重启后才能通过(注销也应该有所帮助)。

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

通常重新启动进程以获取环境变量更改已足够,但如果使用某个自定义启动器(explorer),新进程可能仍会继承其环境,并且还需要重新启动父进程,或注销/重启。


在这种特殊情况下,用户已经更新系统PATH环境,包括ImageMagick的目录包含RMagick2.so所需的DLL文件,但是RubyMine的过程中没有得到的PATH IDE重启后新的价值,是仍然使用没有ImageMagick DLL的值。系统重新启动后,RubyMine开始使用新的PATH值,rmagick gem能够找到所有依赖项。

+0

对不起,在这样一个老问题上发帖,但自从我找到它之后,我发现其他人可能也会这样,下面的内容可能会有所帮助。对我来说,问题也是一个过时的'PATH',但重新启动RubyMine修复它,不需要注销:)(yey,您的音乐可以继续播放;)) – 2013-11-09 15:53:44