Python上でC/migemoを利用するためのラッパーライブラリであるpymigemo
というのをインストールしようとしたところ、ビルド時にエラーが発生した。
http://diary.atzm.org/20051007.html#p02
こちらのエントリに書かれている内容に従い、ソースを修正したが、
それでもビルドに失敗する。で、さらにしらべてみたところ
http://anond.hatelabo.jp/20080321230641
上記エントリによると、Pythonのdistutilsを使って、モジュールをビルドする時には、
Pythonのバージョンに対応したVisualStudioが必要ということが判明。
Python2.5.2の場合はVS2003、Python2.6の場合はVS2008が必要になるとのこと。
が、手元の環境ではPython2.6を使っているがVS2008がない。VS2003はある。
そこで、Python2.5.2の方でsetup.pyを実行して、
できあがったモジュール(migemo.pyd)を、
バイナリエディタでPython25.dllからPython26.dllに依存するように
書き換えることによって、問題を回避することができた。
モジュールのビルド
# Python2.5.2でビルド C:\Python25\python.exe setup.py build # Python2.5.2環境にインストール C:\Python25\python.exe setup.py install
上記のコマンドを実行すると、
C:\Python25\lib\site-packages\migemo.pyd が作成される。
このモジュールは、python25.dllに依存しているので、
Python2.6上では利用することができない。
依存関係の修正
これをバイナリエディタで開き、「python25.dll」で検索すると、
一カ所だけヒットするので、ここを「python26.dll」に書き換える。
あとは書き換え後のモジュールを、C:\Python26\lib\site-packages にコピー。
これでPython2.6上で利用できるようになる。
モジュールをimportしてみたが、特に落ちたりもしなかった。めでたしめでたし。