2012-03-23 33 views
5

Tôi gặp vấn đề với RubyMine 4.0.1 trên Windows 7. Mỗi lần tôi chạy kịch bản ruby ​​từ RubyMine trong đó có dòng chỉKhông thể khởi động sử dụng từ RubyMine

require 'rmagick' 

tôi nhận

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

Nhưng khi tôi chạy cùng một tập lệnh từ cmd, mọi thứ hoạt động tốt. Tôi đã cố gắng thay đổi cấu hình chạy, điều chỉnh biến môi trường, nhưng không có gì có vẻ hoạt động.

+0

Bạn có ImageMagick dll trong môi trường hệ thống 'PATH' không? – CrazyCoder

+0

Có. Mọi thứ hoạt động tốt, trừ khi tôi chạy script từ RubyMine. – vladhid

+0

Cố gắng chạy tập lệnh với 'p ENV [" PATH "]' trong dòng lệnh và trong RubyMine, nó có tạo ra cùng một đầu ra không? – CrazyCoder

Trả lời

5

Hóa ra sự cố là do hệ thống cập nhật PATH môi trường không được chuyển đến quy trình RubyMine. Giá trị mới PATH chỉ được chuyển sau khi khởi động lại máy (đăng xuất cũng sẽ giúp ích).

Để gỡ lỗi các vấn đề như vậy trên hệ thống Windows, hãy sử dụng các công cụ như Process Explorer (cho phép xác minh môi trường xử lý thực tế) và Rapid Environment Editor (cho phép dễ dàng chỉnh sửa môi trường và phát hiện lỗi trong đường dẫn). Thông thường, nó đủ để khởi động lại quy trình để thay đổi biến môi trường, nhưng trong trường hợp một số trình khởi chạy tùy chỉnh (explorer) được sử dụng, quy trình mới vẫn có thể kế thừa môi trường của nó và bắt buộc phải khởi động lại quá trình gốc hoặc đăng xuất/khởi động lại.


Trong trường hợp này người sử dụng đã được cập nhật hệ thống PATH môi trường bao gồm các ImageMagick thư mục chứa các file DLL cần thiết cho RMagick2.so, tuy nhiên quá trình RubyMine đã không nhận được giá trị mới của PATH sau IDE khởi động lại và đã vẫn đang sử dụng giá trị mà không có DLL ImageMagick. Sau khi khởi động lại hệ thống, RubyMine bắt đầu sử dụng giá trị PATH mới và đá quý rmagick có thể tìm thấy tất cả các phụ thuộc.

+0

Xin lỗi vì đã đăng trên một câu hỏi cũ, nhưng kể từ khi tôi tìm thấy nó, tôi đã tìm những người khác có thể quá, và sau đây có thể hữu ích. Vấn đề đối với tôi là lỗi thời 'PATH', nhưng khởi động lại RubyMine đã sửa nó, không cần đăng xuất :) (yey, nhạc của bạn có thể tiếp tục chơi;)) –

Các vấn đề liên quan