Tag/PyTC

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

jbking さんや Voluntas さんに感謝です。

次に 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.dtokyocabinet.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/

Categories

Archives