Windows版のvim(香り屋ver)でpythonインターフェースを有効にする

プラグインなどで、pythonスクリプトを利用する方法。

こちらhttp://vim-users.jp/2010/03/hack132/を参考に

まずはpython2.7をインストールした。

その後、環境変数pathにpythonのインストールディレクトリを指定して、

vimコマンドから

:echo has(‘python’)

を実行して、1が帰って来たら利用出来る。

画面

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”) pass pagemapping = [(‘/oauth(.*)’,OAuth ) ] application = webapp.WSGIApplication(pagemapping, debug=True) def main(): run_wsgi_app(application) if __name__ == “__main__”: main()

/oauthaaaの時、 aaaのメソッドが呼び出される(pagemappiongのカッコで囲んだ値が、getメソッドの第2引数になる。)。 メソッドが無いときは、404を返す。

ちょっと考えると、プライベートにしときたいから呼び出して欲しくないメソッドが呼ばれちゃうとかあるけど、 そこはまぁ、うまいことやると言うことで。

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ファイルでインストール

完了。

[...]