ActivePython に同梱された PythonWin がクラッシュするお話 [プログラム三昧]
PCでデバッグを行うために、ActiveStateのActivePythonを使用しています。 Windows の再インストールに伴い、インストールしたのですが…
ActivePython はインストールしたけれど
ActivePythonを使っている理由は、エディタまでついてくるお手軽構成だからです。 インストールして、いざエディタである Pythonwin を起動してポチポチ…
あれ? 固まっちゃったよ?
あれ? 落っこちた!
何度も起動しなおして試してみましたが、一行も実行される気配がありません。 再インストールも試みましたが、どうにもこうにも、動きません。
Shell なら問題なし
GUIに問題があるかもしれないと思い、 "Python Interactive Shell" を起動してタイプしてみましたが、こちらはちゃんと動きました。 どうやら、問題があるのは Pythonwin のようです。
掲示板に解決策があった
そこで、 google さんにお願いして、どこかで問題になっていないか探してもらいました。 キーワード「pythonwin crash」で探すと、ありました。 「ActiveState Community Site」とまさにぴったんこです。
ActivePython 2.6 Pythonwin Crashes
最初に報告があったのが、2008年11月とそんなに古くもありません。 スレッドを紐解くと「MFC90.DLLの問題じゃないか」「ユーザのレジストリのせいだ」「特権を与えればいい」と、さまざまな解決策が出てきましたが、どれも決定的じゃないみたい。 本当に解決したのか心配になっていた所、2009年2月20日の投稿がありました。
問題は、解決した!
最新版の "scintilla.dll" ファイルが "www.dlldll.com/scintilla.dll_download.html" からダウンロードできて、 "pythonwin.exe" と同じ場所にある古いものと入れ替えることができる。
"pythonwin.exe" は、デフォルトでは、「C:\Python26\Lib\site-packages\pythonwin」にあります。
さっそく、ダウンロードしてみました。 古いファイルが 408,576バイトなのに対して、新しいファイルが 134,144バイトです。 ずいぶん、ダイエットしましたね。 本当に更新版なの?
半信半疑で入れ替えてみると、みごと動きました。
それぞれのファイルのバージョン情報を調べると、「新しい」"2.2.0.146"は"Editor control used by Pythonwin 1995-1998"とあり、「古い」"1.7.5.0"は"A Source Editing Component 1998-2007"とあります。 いったい、何があったんでしょうね。
これで、やっとプログラムを書き始められるわい。
参考文献
ActivePython は、この本で紹介されていたディストリビューションのひとつだったはずです。
Windows の再インストールのついでに、ActivePython 2.6.4.8 を入れてみましたが、Pythonwinは、相変わらずクラッシュします。scintilla.dllを入れ替えたら、落ちなくはなりました。まあ、深く考えないことにしておこう。
by noritan (2009-12-01 14:01)
pythonのmatplotlibを使ってみたかったので、いやー本当に助かりました。
べつのパソコンでは何の問題もなく動作するのに私個人のマシーンではメモリーエラーがでて、途方にくれていたところ、本ページに行き当たり助かりました。ありがとうございました。
「地獄で仏」というのはこうゆうことをいうのでしょう。
by masujin (2011-07-20 11:07)