Tag/TokyoCabinet
PyTC試してみたよ。
PyTC をインストールしてみたよ。 思いっきり Python Unconference Tokyo 1 の影響を受けてるワケですが。 思いっきり a2c さんの こちらのエントリー に刺激されてるワケですが。
TokyoCabinet 自体もインストールしてなかったので、 まずは TokyoCabinet から。
$ curl -O http://tokyocabinet.sourceforge.net/tokyocabinet-1.1.2.tar.gz
$ tar zxf tokyocabinet-1.1.2.tar.gz
$ cd tokyocabinet-1.1.2/
$ ./configure --prefix=/usr/local/tokyocabinet
$ make
$ sudo make install
Mac なら MacPorts + 野良Ports で最新版が1発で入るよ。
$ sudo port install tokyocabinet
次に PyTC をインストール。 グニャラ さんのおかげで easy_install で入るよ。素敵過ぎます。
$ sudo easy_install pytc
と、思ったら、こんな感じのエラー吐いた。
pytc.c:18:19: error: tcbdb.h: No such file or directory
pytc.c:19:19: error: tchdb.h: No such file or directory
pytc.c:20:20: error: tcutil.h: No such file or directory
ヘッダファイルが見つけられないらしいので、以下で回避。
$ export CPPFLAGS="-I/opt/local/include ${CPPFLAGS}"
$ export LDFLAGS="-L/opt/local/lib ${LDFLAGS}"
Ubuntu は /etc/ld.so.conf.d に tokyocabinet.conf とか作って、 ldconfig もやりましたです。
インストールの確認も含めて、 ちょろっと遊んでみる。
>>> import pytc
>>> hdb = pytc.HDB('hdb.db', pytc.HDBOWRITER | pytc.HDBOCREAT)
>>> hdb
<pytc.HDB object at 0x162db8>
>>> hdb['hige'] = 'mojamoja'
>>> print hdb['hige']
mojamoja
>>> hdb['uhige'] = u'mojamoja'
>>> print hdb['uhige']
?( # unicodeはダメっぽい。
>>> hdb['mhige'] = 'もじゃもじゃ'
>>> print hdb['mhige']
もじゃもじゃ
>>> hdb['muhige'] = u'もじゃもじゃ'
>>> print hdb['muhige']
( # やっぱunicodeはダメっぽい。
どうやら unicode は食えないらしい。
オブジェクトを保存する時は、 cPickle とか使って保存すると良いらしいので、 それもやってみる。
>>> import pytc
>>> import cPickle
>>> hdb = pytc.HDB('hdb.db', pytc.HDBOWRIER)
>>> d = {'zero': 0, 'one': 1, 'two': 2}
>>> hdb['dict'] = cPickle.dumps(d)
>>> hdb['dict']
"(dp1\nS'zero'\np2\nI0\nsS'two'\np3\nI2\nsS'one'\np4\nI1\ns."
>>> cPickle.loads(hdb['dict'])
{'one': 1, 'two': 2, 'zero': 0}
ちゃんと復旧出来ております!(当たり前なのでしょうけれども) これ、ちょっと感激。面白すぎる。 大きな事が出来る訳ではないけれども、 かなり実用的な感じ。
どこか使える場所を探して、もっと試してみたいなぁ ![]()
- Posted at:
- 2007/12/16 17:38:20
- 0 Comments
- 1 TrackBack
- Tags:
- PyTC
- Python
- TokyoCabinet
- Trackback:
- http://humming.via-kitchen.com/2007/12/16/tried-using-pytc/trackback/