2010/11/05

pylabでMemoryErrorが消えなかった原因がようやくわかった!


なんか、Python 2.6でMatplotlibのサンプルを動かそうとしたら、変なエラーが出て困った。
結果からいうと、

C:\Python26\Lib\site-packages\matplotlib にあるfont_manager.pyに

local = None

という1行を加えるだけで解決するんですが、これがなかなかGoogle検索で出なくって、フォントが壊れてるだかなんだか、いろいろやる羽目になりました。


    for fontdir in MSFontDirectories:
        try:
            local = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, fontdir)
        except OSError:
            continue
        
        local = None
        if not local:
            files = []
            for ext in fontext:
                files.extend(glob.glob(os.path.join(directory, '*.'+ext)))
            return files


助けられたページ↓


字が小さいけど。


だめなページ↓

Subject: Re: Re: Could not fire up pylab in Japanese Win XP

これはあてにならなかった。


エラーの内容↓

   key, direc, any = _winreg.EnumValue( local, j)
MemoryError

みたいな。忘れた。一度成功するとエラーが再現しなくなった。うお。