2007-10-01から1ヶ月間の記事一覧

例外から回復する

Python で例外が発生したら、状態を回復して、例外が起こった場所から実行をやり直すという馬鹿げた話。 クロージャは考慮してない。 例外が起こったスコープの frame オブジェクトを取得する こんな感じ ? import inspect frame = inspect.trace()[1][0] 状…

7zimport

Python には zipimport という機能があり、モジュールを zip から import することができます。 標準ではネイティブコードの拡張モジュール (*.pyd) やそれらが使うダイナミックリンクライブラリ (*.dll) を zip に固めることはできませんが、py2exe によっ…

code object から module への変換

Python で compile などによって得られた code object を module に変換するには以下のようにします。 PyImport_ExecCodeModuleEx を Python で書き直したようなものです。 import sys import imp def codeimport(dottedname, code, filename = ''): if not …

Python のディスクコスト

python-2.5.1.msi -- 10.4 MiB (展開したら大分膨らむ) zip を使って portable に -- 7.2 MiB (展開しないでも実行できる) tcl/tk サポートなし Doc, include, libs, Scripts, Tools は排除 標準ライブラリを全て zip に固める .pyd の import は pywin32 の…

distutils.msvccompiler が参照するレジストリ

from distutils import msvccompiler # レジストリのルートキー root = HKEY_CURRENT_USER #HKEY_LOCAL_MACHINE # sys.version からビルド環境とバージョンを取得 version = msvccompiler.get_build_version() # # マクロで使用する定数。使用しなければ設定…