python2.7 に移行することができるのかもしれないが、Datastoreを使用していた場合 Deploy の際、以下のエラーとなる。runtime: python27 # runtime: python api_version: 1 threadsafe: true #マルチスレッドで動かす - url: .* # script: main.py script: main.app
Local Serverは2.7対応していないがコマンドラインからの実行もあるのでベースは2.7に変更することにした。 インストールされているバージョンを確認Error 400: --- begin server output --- The 'python27' runtime is only supported for apps using the High Replication Datastore.
2.7 に変更$ port select --list python Available versions for python: none python25 (active) python25-apple python26-apple python27
参考: macports python_select command not found$sudo port select python python27 Password: Selecting 'python27' for 'python' succeeded. 'python27' is now active.
GoogleAppEngineLauncherは2.5固定
(python2.7に対応していない。Preferenceを2.7に変更しても2.5に戻される)
HRD*** Running dev_appserver with the following flags: --admin_console_server= --port=8080 Python command: /opt/local/bin/python2.5 WARNING 2011-12-11 05:39:58,528 urlfetch_stub.py:111] No ssl package found. urlfetch will not be able to validate SSL certificates. WARNING 2011-12-11 05:39:58,828 rdbms_mysqldb.py:90] The rdbms API is not available because the MySQLdb library could not be loaded. INFO 2011-12-11 05:39:59,444 dev_appserver_multiprocess.py:637] Running application dev~snsimglink on port 8080: http://localhost:8080 WARNING 2011-12-11 05:40:10,308 py_zipimport.py:139] Can't open zipfile /opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg-info: IOError: [Errno 13] file not accessible: '/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/setuptools-0.6c11-py2.5.egg-info' INFO 2011-12-11 05:40:11,033 dev_appserver.py:2753] "GET / HTTP/1.1" 200 -
参考: 【備忘録】 GAEでPython2.5からPython2.7へマイグレーションするにはError 400: --- begin server output --- The 'python27' runtime is only supported for apps using the High Replication Datastore. --- end server output --- If deploy fails you might need to 'rollback' manually. The "Make Symlinks..." menu option can help with command-line work. *** appcfg.py has finished with exit code 1 ***
GAEでのDjangoの使い方は2通りある(と思って)います。 フレームワークとして使う(というか、生Djangoとして使う) この場合settings.pyが必要になります。 書くべき中身は渡邉さんの引用したURLに書いてある通りですが、元ネタはDjangoの配布物に含まれています ので、これをコピーして書き換えることになります(多分・・・自信無いですが一応動いた実績あり)。 Djangoのテンプレートエンジンをwrapした、google.appengine.ext.webapp.templateとして使う GAE/Py2.5でそうしていた場合、GAE/Py2.7に切り替える際、あなたはプログラム上は何も変える必要がありません(※)。 Python2.7環境で上記をimportすると、中身はDjango1.2になっているからです。 やるべきことはDjango0.9.6と1.2の差分であるテンプレートエンジンの挙動の違いを、テンプレート側で 吸収してあげることです(デフォルトエスケープの扱いとか)。 ※Python2.7対応はまた別の話です。