Javaプログラマの為のGAE/py bulkloader - GAE/py環境設定 -

現在GAE/PyでしかRemoteAPIに対応してない為、GAE/Jでは便利なbulkloaderが使えません。

いずれJavaもサポートされるでしょうが自分は待つのが嫌いなので

「Python=インデントがブロック。きもい」程度の知識ですがチャレンジしてみました。

色々やり方があると思いますが、以下を前提条件とします。

  • 1.メインのGAE/Jアプリ実装中に(=Eclipseから)アップロード可能にする事
  • 2.GAEにアップロード、メインのGAE/Jアプリのデータインポート/エクスポート機能として提供可能である事

取り敢えず、1はできました。

2は、RemoteAPIのライブラリを一緒にアップしてクラスを直接使えばいけると思います。

バージョン変えればJavaとPython混在できますし、混在しててもデータストアは同じですし。

今回は、環境設定方法をば。

Googleのドキュメントまんまの所多いですが。

スタート ガイド: Python - Google App Engine – Google Developers

1. Python2.5インストール

Macだと既にPython2.6.1がインストールされていたので何もしてません。

ターミナルで「python –version」でバージョンでたらOK。

あ、そうそう。Macbook-Pro買いますた。

2. Google App Engine SDK for Pythonインストール

GAE/JアプリをEclipseで開発する場合、大抵はGoogle Plugin for Eclipseを使うと思いますが、

プラグインの中にJava用のSDKが入っている為、別途インストール必要はありませんでした。

ですが、GAE/PyのEclipseプラグインは現在ありませんので、

GAE/Py用のSDKを別途インストール必要があります。

ドキュメントの手順どおりにやればOKです。

3. Sqliteインストール

bulkloaderを利用する場合は入れといた方が良いそうです。

データのアップロードとダウンロード - Google App Engine – Google Developers

Macだと既に(ry

4. Python用Eclipseプラグイン「Pydev」インストール

更新サイトが変わってたので注意。

本家のマニュアルは英語ですが、わかりやすいのでインストールも簡単です。

現バージョンはGAE/Pyに対応してます。

Install

プラグインインストール後、インタプリタを設定します。

Javaのランタイム設定するのと同じ感覚ですね。

Interpreter Configuration

f:id:zetta1985:20100119221006j:image

Macの場合、上記スクショの通り、/usr/bin/pythonにインタプリタがあります。

5. PyDev GAE projectの作成

bulkloaderを動作させる場合、GAE/Jプロジェクトである必要は無いと思いますが、

モジュールのパス設定等のめんどくさい事を省く為にGAE用のプロジェクトを新規に作ります。

便利な事にウィザード用意してくれてます。

新規プロジェクトから「Pydev Google App Engine Project」 をチョイス。

f:id:zetta1985:20100119221007j:image

適当なプロジェクト名を入力します。

ここでは「bulkloader」としました。

f:id:zetta1985:20100119221008j:image

Google App Engine for Pythonのインストールディレクトリを指定します。

僕の場合は「/Applications/google_appengine」。

f:id:zetta1985:20100119221009j:image

GAEのアプリケーションIDと新規に作成されるプロジェクトの形式を設定します。

僕の場合はIDが「zetta1985」、最終的に管理者用Webアプリにするので「Ask login」を設定。

f:id:zetta1985:20100119221011j:image

ノープロブレムでFinishです。

こんなんできます。

f:id:zetta1985:20100119221012j:image

6. GAE/Py起動構成の設定

ローカル開発用サーバーの起動構成を手動で設定する必要があります。

起動構成の「Pydev Google App Run」を選択、新規作成します。

対象プロジェクトを選択、GAE/Pyインストールディレクトリ内の「dev_appserver.py」にパスを通します。

「dev_appserver.py」はワークスペース外なので、手動で入れる必要があります。

f:id:zetta1985:20100119221013j:image

追記:GAE/Pyインストールディレクトリを変数指定する方法、意外とあっさり見つかりました。

Pydevプロジェクトで変数「GOOGLEAPPENGINE」にウィザードで指定したパスが入ってるので、起動モジュールの指定にも使えます。

「${GOOGLEAPPENGINE}/dev_appserver.py」と指定すればOKです。

引数で実行するWEBアプリのコンテキストルートを指定します。

Subversion等のリポジトリで管理する場合は、ローカル環境に依存させない為に変数を定義します。

ここでは「${project:loc:/bulkloader}/src」を引数に設定しました。

以下のスクショは変数定義するところ。

f:id:zetta1985:20100119221014j:image

これで、「Run」を押せばローカル開発用サーバーが起動します。

試しにブラウザからアクセスしてみましょう。

ログインを求められた後、以下の表示がでます。

f:id:zetta1985:20100119221015j:image

実はブログ書いてる時に立ち上がったサーバーにブラウザからアクセスしたら、

こんな感じのエラーが発生しました。

CookieError: Illegal key value: http://localhost:8888/gwt.twitter/theme

GAE/JでExt-GWTでTwitterのブラウザアプリを作ろうかな、と思って色々試してた時の残骸です。

Ext-GWTサンプルのThemeで保存されるCookieがあかん、と。

もしこういうエラーが出たら、Cookieを手動削除しちゃってください。

FireFoxなら、「環境設定」>「プライバシー」>「Cookieを個別に削除」で手動削除できます。

次回は、bulkloader関連の設定します。

このエントリーをはてなブックマークに追加
comments powered by Disqus