技術情報棚卸し(平日限定)

todoa2cの技術情報棚卸しです。平日限定ってことはアレだ。言わせんな恥ずかしい。

App Engine用言語をPythonにした件…

はじめに

GoでGoogle App Engineを触るテストを 書いておきながら、諸般の事情により、Pythonで書きなおすことにしました。 書き直すと言っても、大した進んでいないので、また1から書き直しという感じですね。

準備

今回はMacで開発しているので、ライブラリはここからダウンロードし、インストール&実行すればOK。

Download the Google App Engine SDK – Google App Engine – Google Developers

Pythonはvirtualenv経由だとうまく動かないもようなので、Pyenvで特定の2.7系バージョンを作る。

開発環境はIntelliJ IDEAのPythonプラグイン + App Engineサポートを利用。 間違ってもFlaskを使いたいからと言って、Flask Templateを選んではいけない。あとで自分でライブラリを ダウンロードすること。そうしなければ、App EngineのライブラリがIntelliJ IDEA側で認識してくれなかった (別途不具合報告予定)。

書いてみる

ライブラリは requirements.txt あたりを用意し、下記コマンドを実行することで、 ライブラリがlibフォルダに置かれる。

1
pip install -r requirements.txt -t lib

また、appengine_config.py を用意し、上記のlibフォルダをライブラリフォルダとして認識するように、 下記を記述する。

1
2
3
4
5
import os
import sys
ROOTPATH = os.path.dirname(__file__)
LIBPATH = os.path.join(ROOTPATH, 'lib')
sys.path.append(LIBPATH)

その他コードは割愛するけれど、Flaskのフレームワークとしての薄さと 3rd-partyライブラリによる拡張性の高さは結構好み。 とは言えDjangoをまじめに学習したことがないので、別途 大阪Pythonユーザの集まり 2014/05の Djangoセッションで学習してみようかと思う。

デプロイ

デプロイは、ローカル&本番環境ともに、とりあえず簡単に、IntelliJ IDEAから試す。 ローカル環境の場合は、App Engine Serverから起動する事ができる。

本番環境は、メニューのToolsからGoogle App Engine → Upload App Engine app… から アップロードできる。簡単。

簡単だけど、継続的デリバリーができなくなるので、別途デプロイ方法を検討する。

Comments