msys: python-leveldbをMinGW32で使う |{{{1|
Linuxだと導入簡単な leveldb ですが、 Windowsだと、ちょっと工夫が必要です。
1. MinGWで leveldb をビルドする 1. MinGWで python-leveldb をビルドする
MinGW32か、MinGW64を使うかは intall した Python の バイナリ形式で決めます。
1. MinGWで leveldb をビルドする
なんだか毎回わからなくなるんで調べながらやってるんですが、 私の場合は、 zalanyib というソースを使います。
snappy も msys-1.0 の時はコンパイルしてましたが、 今は package にあるのでそっちを使います。
新しい leveldb にも対応させたいですが、 それはまた今度...まずはビルドの準備:
$ pacman -Sy $ pacman -S mingw-w64-x86_64-snappy $ pacman -S mingw-w64-x86_64-gcc'
ソースの取得とコンパイル:
$ hg clone git://github.com/zalanyib/leveldb-mingw leveldb-mingw-zalanyib $ cd leveldb-mingw-zalanyib $ make
出来上がった、 leveldb.dll は、
2. MinGWで python-leveldb をビルドする
leveldb の python interface が必要ですが、 今回は、 bygreencn にあるものを使います。
まずは、環境準備:
$ pip install virtualenv $ virtualenv venv $ (echo "[build]"; echo "compiler = mingw32") > venv/Lib/distutils/distutil.cfg $ cp leveldb-mingw-zalanyib/libleveldb* venv/Scripts $ cp leveldb-mingw-zalanyib/leveldb* venv/Scripts
次にソースの取得とコンパイル:
$ hg clone github.com/bygreencn/levelDB-MinGW-Python-0193 $ cd levelDB-MinGW-Python-0193 $ ../venv/Scripts/python setup.py build $ ../venv/Scripts/python setup.py install
うまく行かないので、 setup.py を調整
MinGW64用 (MinGW32では不要?)
common_flags = [ ... '-D_hypot=hypot',
DLLの場所を指定...:
path1 = '-L' + os.path.join(path, "..", "..", "leveldb-mingw-zalanyib"), extra_link_args = [path1, ...
コメント
Comments powered by Disqus