みなさま、ゴールデンウィーク中如何お過ごしでしょうか。 近々、Bitcoinの技術的なお話をさせて頂くことになり、ゴールデンウィークもプログラミングして試したり資料書いたりしております。
さて、PythonのBitcoin用便利ツール "bitcointools" を使っていろいろ試していたんですが、Mac OS Xで動いているbitcoindのローカルにあるブロックデータでも見てみようかと "dbdump.py" を動かしてみようとするもエラー発生。bitcoind のブロックデータはBerkley DB形式で保存してるんですが、Mac OS X MacPortsのPython ではそのライブラリを読もうとするとエラーになるみたいなんです。
$ pythonグーグル先生に聞いてみたところ みなさんも同様に悩んでおられる様子。
Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import bsddb
Traceback (most recent call last):
File "File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/bsddb/__init__.py", line 67, in import _bsddb
ImportError: No module named _bsddb
>>>
ActivePython 2.7にある"_bsddb.so" を MacPortsにコピーすれば動くみたいな話が書いてあったので試してみたら動きました。
まずは、ActivePythonをサイトからダウンロードしてインストールします。
MacPorts PythonとActivePythonではインストール先が違います。
ActivePython for Mac OS Xのインストール先インストールしたら早速ファイルコピーします。
/Library/Frameworks/Python.framework/Versions/2.7
MacPorts の Pythonのインストール先
/System/Library/Frameworks/Python.framework/Versions/2.x (いろいろ)
% cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7これで MacPorts Pythonでも無事 bsddb が使えるようになりました。
% sudo cp -i lib-dynload/_bsddb.so /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/
$ python今日はこんなところで。
Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import bsddb
>>>