そういうことだったんですね

いろいろ調べたり学んだりしたことを忘れないように書き連ねています

Ruby - 謎の `require':cannot load such file エラー

Windows環境でさっきまで動いていたプログラムが動かないなぁ、と思ったときの話。LOAD_PATHなど正しく設定してもうまく読み込めなくなってました。

 

症状


C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require':
cannot load such file -- xxxxxxx (LoadError)
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:i
n `require'
        from xxxx.rb:9:in `
'

使っているのは Ruby-1.9.3 。数時間前まで動いていたのに動かなくなってる。

原因

ファイルパスに日本語が含まれていたから。

上位フォルダ名をうっかり日本語にかえてしまったのでした。

スクリプトコーディングがcp932以外だと発生するようです。

Bug #7881: Windows でパスに日本語を含むスクリプトからの require が失敗する - ruby-trunk - Ruby Issue Tracking System

 

バグのように思えて実はencodingの挙動の問題で修正がかかるようです。

素直にスクリプトをcp932に替えた方がよいかもしれない。。。

プログラミング言語 Ruby

プログラミング言語 Ruby