GAE+Django Django-nonrelで開発サーバー起動&アップロード

Django-nonrelのドキュメントの和訳が終わったので、実際に使ってみます。
自分のマシンはPuppy Linuxを使っている関係で以下のような構成になっています。
参考にする場合は各自の構成に読み替えてください
/mnt/sda2/workspace Eclipseワークスペース
/mnt/sda2/apps/google_appengine GAE/Python SDK


1.前準備
SDKは1.3.8を使います(最初1.3.7を使っていましたがエラーで動きませんでした)
SDKにパスを通しておきます。

export PATH=$PATH:/mnt/sda2/apps/google_appengine

またDjango-nonrelのサイトからファイルをダウンロードして展開しておきます。

django-nonrel
djangotoolbox
django-dbindexer
djangoappengine
django-testapp

自分は/mnt/sda2/apps/gae-djangoというフォルダを作ってそこにすべて置きました。


2.Eclipseでプロジェクトを作成する
Eclipse上で開発できるようにします。
ただ、Django-norelのマニュアルに「dev_appserver.pyを直接使わないでください」とあるので、PydevプラグインのGAEプロジェクト機能は使えません。
通常のPydevプロジェクトを作成することにします。

・新規>その他>Pydev プロジェクト

今回はdjango_testというプロジェクト名で作成します。


3.Django-nonrelのファイルをプロジェクトフォルダにコピーする
Django-nonrelのファイルをコピーまたはシンボリックリンクを作成します。
自分は以下のようなスクリプトを作成して行いました。
/mnt/sda2/apps/gae-django/setup.sh

#!/bin/sh
DJANGO_GAE=/mnt/sda2/apps/gae-django
ln -s ${DJANGO_GAE}/django-nonrel/django django
ln -s ${DJANGO_GAE}/djangotoolbox/djangotoolbox djangotoolbox
ln -s ${DJANGO_GAE}/django-dbindexer/dbindexer dbindexer
ln -s ${DJANGO_GAE}/djangoappengine djangoappengine

cp -rf ${DJANGO_GAE}/django-testapp/* .


プロジェクトフォルダで実行

cd /mnt/sda2/workspace/django_test/src
/mnt/sda2/apps/gae-django/setup.sh


4.開発サーバーの実行
PydevのGAE機能が使えれば簡単に実行できますが、残念ながら自分で実行設定を作る必要があります。
・左側のプロジェクトビューアでsrcフォルダを右クリック
 実行>実行の構成
Python Runをダブルクリック
・メイン>プロジェクト名  プロジェクトを指定します。ここではdjango_test
・メイン>メイン・モジュール  参照ボタンから、/src/manage.pyを選択
・引数>プログラムの引数  runserverと入力します
・引数>作業ディレクトリ  ワークスペースボタンから、/django_test/srcを選択
・環境>設定する環境変数  新規ボタンから、PATH=$PATH:/mnt/sda2/apps/google_appengineを追加
・共通>お気に入りのメニューに追加  実行とデバッグをチェックします



これで画面上の実行アイコンから追加した構成を選べば開発サーバーが起動するはずです。

*起動しない場合
自分の場合、Incorrent timezone settingとか出てエラーになりました。
linux版の場合タイムゾーンの設定で/usr/share/zoneinfoフォルダを見ていて、ここにない設定だとエラーになるようです。
settings.pyに
TIME_ZONE = 'Asia/Tokyo'
を追加したところ動作しました。


5.アップロード
これもPydevの機能が使えないのでコマンドラインから。
事前にhttps://appengine.google.com/にアクセスしてアプリケーションを作成し、取得したIDをapp.yamlに反映させておきます。
コマンドラインから、

cd /mnt/sda2/workspace/django_test/src
./manage.py deploy


Eclipseを使おうとすると少し面倒な設定が必要ですが、まあ慣れれば問題ないレベルでしょうか。