はろーえぶりわん
pypyをはじめようとしてそのまま日がたち、アドベントカレンダーで一念発起してpypyをいじっているaodagです。
さて、アドベントカレンダーが回ってきましたが、ほかのみんなのようなpypyで処理系を!ということはあんまり考えてないわけです。
pypyがcpythonよりも速いと聞いてきました!
さてpypyはpyramidですでに公式サポートしているので、まあpypy使えますよねというところですが、ZODBが動かないわけです。
動かないので、動かすためにあがいてみました。(まだちゃんと動かせていません。)
まずはこちらのmlポストを見て欲しい
https://mail.zope.org/pipermail/zodb-dev/2011-September/014364.html
手順が書いてあります。
ということでそのままやってみます。
>>>> storage = FileStorage('data1.fs') >>>> from ZODB.DB import DB >>>> db = DB(storage) >>>> conn = db.open() >>>> root = conn.root() >>>> root Traceback (most recent call last): File "<console>", line 1, in <module> File "/home/aodag/Envs/pypypy/lib-python/modified-2.7/UserDict.py", line 15, in __repr__ def __repr__(self): return repr(self.data) File "/home/aodag/Envs/pypypy/site-packages/persistent/mapping.py", line 30, in __get__ return self.func(inst) File "/home/aodag/Envs/pypypy/site-packages/persistent/mapping.py", line 99, in data data = self.__dict__.pop('_container') KeyError: '_container'
だめでした(´・ω・`)
でもこれってpypyだからだめなの?
ひょっとして、このブランチがだめなんじゃないの?
ということで、このブランチをcpythonで試してみました。
まずはパッチなしの場合。
python2.6では動きます。
python2.7でも動きました。
さて、パッチ適用後です。
python2.7で動きました。
pypyのバージョンが関係しているかもしれませんが、このあたりで心折れたので(日付変わっちゃってるし(´・ω・`) )ZODB動かす夢はまた情報が入ったら試すことにします。
残念な結果になりましたが、ひとまずアデュー。