2012-03-23 18 views
5

Estoy teniendo un problema con RubyMine 4.0.1 en Windows 7. Cada vez que corro ruby ​​script de RubyMine que contiene la única líneaNo se puede iniciar el uso de RubyMine

require 'rmagick' 

que recibo

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>' 

Pero cuando ejecuto el mismo script desde cmd, todo funciona bien. Intenté cambiar las configuraciones de ejecución, ajustando las variables de entorno, pero nada parecía funcionar.

+0

¿Tiene ImageMagick dlls en el sistema 'PATH' environment? – CrazyCoder

+0

Sí. Todo funciona bien, a menos que ejecute el script de RubyMine. – vladhid

+0

Intenta ejecutar el script con 'p ENV [" PATH "]' en la línea de comando y en RubyMine, ¿produce el mismo resultado? – CrazyCoder

Respuesta

5

Resultó que el problema fue causado por el entorno actualizado del sistema PATH que no se pasó al proceso RubyMine. El nuevo valor de PATH se aprobó solo después del reinicio de la máquina (el cierre de sesión también debería ser de ayuda).

Para solucionar este tipo de problemas en el sistema Windows, es útil usar herramientas como Process Explorer (permite verificar el entorno real del proceso) y Rapid Environment Editor (permite editar fácilmente el entorno y detectar errores en las rutas).

Normalmente es suficiente reiniciar el proceso para tener en cuenta los cambios de variables de entorno, pero en caso de que se utilice un iniciador (explorador) personalizado, el nuevo proceso aún puede heredar su entorno y es necesario reiniciar también el proceso principal. o cerrar sesión/reiniciar.


En este caso particular, el usuario ha actualizado el sistema PATH entorno para incluir el directorio de ImageMagick que contiene los archivos DLL necesarios para RMagick2.so, sin embargo proceso RubyMine no consiguió el nuevo valor de PATH después de reiniciar y fue IDE sigue utilizando el valor sin ImageMagick DLL. Después del reinicio del sistema, RubyMine comenzó a usar el nuevo valor PATH y la gema rmagick pudo encontrar todas las dependencias.

+0

Lo siento por publicar en una pregunta tan antigua, pero desde que lo encontré, pensé que otros también podrían hacerlo, y lo siguiente podría ser útil. El problema para mí también fue una 'PATH' obsoleta, pero reiniciar RubyMine lo solucionó, no es necesario cerrar la sesión :) (yey, tu música puede seguir jugando;)) –

Cuestiones relacionadas