pythonで、スタックトレースを文字列として得る方法

GAEでの開発中に、エラーハンドリングしてExceptでエラーをcatchすることまではできたのだけど、
stacktraceをうまいこと処理する方法が見つからなかったので調べた。以下のようにすると、ログに出力できる。
logging.error(traceback.format_exc(sys.exc_info()[2]))
sys.exc_info()[2]で、stacktraceオブジェクトを取得して、
traceback.format_excで文字列にフォーマットしている。
ということが、リファレンスに書いてあった!
http://www.python.jp/doc/2.4/lib/module-traceback.html

appengine(python)で動的にメソッドを呼び出して、urlにマッピングする

pythonの動的メソッド呼び出しの方法を使って、
python+appengineで、urlを設定するときに、各urlごとにクラスを作成せずに
クラスの中のメソッド呼び出しを変更する方法。
class OAuth(webapp.RequestHandler):
def get(self , methodname):
logging.info(methodname)
try:
method = getattr(self, methodname)
except AttributeError:
self.response.set_status(404)
return
method()

def aaa(self):
logging.info(“aaa called”)
[...]

Windowsでeclipseを設定し、appengine(python)の開発を行う

1.pydevのインストール
ヘルプ->新規ソフトウェアのインストールから
pydev(http://pydev.org/updates/)を追加して、インストール

2.ウィンドウ->設定から、pydevの設定をする
pythonを普通にインストールしていれば、auto configをクリックするだけでok

3.新規プロジェクトの作成で、google appengineプロジェクトを作成する

ここで、Browseからappengineのパスを設定する

プロジェクトエクスプローラーに作成される

4.実際に動作させる
実行の構成から、動作環境を作成する。

Projectに自分の選択したプロジェクト、MainModuleにappengineフォルダのdev_appserver.pyを設定する。
appengineフォルダは、browseから辿れないので直で打ち込む。

argumentsタブの設定をする
引数に、ダブルクォートでソースのフォルダを囲んで記述する。

実行をクリックすると、コンソールにメッセージが出るので、それを確認して
表示されたアドレスにブラウザからアクセスする。

画面が表示されればOK。

google app engine(Python-windows)のインストール

前提:Pythonは既にダウンロード&インストール済みであること。
http://www.python.org/download/

1.SDKのダウンロード(http://code.google.com/intl/ja/appengine/downloads.html)

2.ダウンロードしたmsiファイルでインストール

完了。

pythonでリファレンスを引く

基本的なことですが、メモ
rubyな人にとってのri,refeのコマンド
-[方法1]pydocコマンドを打つ

pydoc ImageDraw

-[方法2]pydocコマンドを -p [ポート名]で実行してHTMLサーバとして実行する

pydoc -p 5555

HTMLサーバとして実行したほうが見易い。
参考:http://www.python.jp/doc/2.4/lib/module-pydoc.html

pythonのコードの中に日本語を使用する

下のようなエラーメッセージへの対処
>|zsh|
SyntaxError: Non-ASCII character ‘\xe3′ in file test.py on line 8, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
|||python|
1 #!/usr/local/bin/python
2 # coding=utf-8
3 import ImageFont, ImageDraw, Image
4
||