2009-05-01から1ヶ月間の記事一覧

PyQT 4.5 もうすぐ

Python 3.0 に対応したり、signal/slot周りをPythonicに改良した PyQT 4.5 が早ければ今週末にもリリースされる。 PyQtアプリの開発環境構築〜開発〜配布までをまとめた本でも書けば流行るのかな。

logging.basicConfig() はすべてのログ出力に先立って呼び出す必要がある

logging.basicConfig() はルートロガーがまだ初期化されていない場合に初期化する関数だけど、一度でもログを出力すると自動でルートロガーが初期化されてしまうので basicConfig() は無効になってしまう。 import logging import foo ... if __name__ == '_…

IPython の起動が重くなったら

history のためすぎを疑う。%clear shadow_compress か %clear shadow_nuke かを試すと良い。詳しくは %clear?

Pythonプログラムがメモリを大量に使っているとき

もし想定以上のメモリを Python プログラムが消費しているのであれば、ループの中で循環参照が生まれていることや、回収不能オブジェクト(循環参照なうえに __del__ メソッドが存在するためにgcがどこから循環を切っていいのか判らないオブジェクト)が存在し…

lxml ではなるべく attrib を使わない方が良い

lxml の Element.attrib は、 _Attrib という libxml への Proxy オブジェクトを生成する。この Proxy オブジェクトは、 _Element という Proxy オブジェクトと循環参照になっている。 大規模なxml処理においては、この循環参照によって gc の間にメモリを食…

日本語Windowsでmercurialを使うときは、 win32mbcs よりも fixutf8 を使おう

mercurialに付属する拡張 win32mbcs は、 0x5c 問題は解決してくれるものの、cp932のファイル名をそのままリポジトリに入れてしまうというhgの仕様自体は変えない。 それに対してfixutf8拡張は、ファイルアクセスAPIをごっそりすげ替えてutf8のbyte文字列で…

PyQt で画像を扱う等するプログラムをfreezeするときの注意

"site-packages/PyQt4/plugins" 以下に配置されているファイルはQtのプラグインで、たとえば "plugins/imageformats" 配下に gif やら jpeg やらの codec が入ってる。 PyQtを使うアプリをpy2exeなどでfreezeすると、これらのcodecが利用不可能になり、JPEG…

PyQtのライセンス

http://d.hatena.ne.jp/gunyara-python/20090508/pyqt45_lxml_install_and_acquire_windows_binary 最近LGPL 2.1もライセンスの選択肢に入ったので、もはや避ける理由もないだろう。 Qtのライセンスは4.5から GPL/LGPL/商用ライセンス になったけど、PyQt4.4…

このブログに乗せているコードは引用を除き CC0 1.0 で提供します。