2011/05/17

日本語はエラー?(Python & Google App Engine)

「せっかく出来上がったので、サーバーにアップしてみよう」

ということでまぁ普通に、いくつかつまずいたので備忘録として以下にメモ。

ローカル環境(Mac)での開発はEclipseで行っており、アプリ開発〜テスト実行までEclipseを出ることはなかったのですが、サーバーにアップするためには、ターミナルからコマンドをたたくか、Google App Engine Launcher で「Deploy」ボタンを押す必要がありそうです。

ものぐさなのでボタンひと押しですませたい。

なので、既にできているEclipseプロジェクトをLauncherにまず登録。



Fileメニューから選ぶのは、「New Application...」ではなく、「Add Existing Application...」でした。

※ここでちょっとハマる。

「Deploy」ボタンを押すとサーバーに転送が始まります。コンソールが立ち上がって転送状況が表示されますがこの時、
「WARNING appengine_rpc.py:428 ssl module not found.Without the ssl module, the identity of the remote host cannot be verified, andconnections may NOT be secure」
と表示されます。

ちょっと気持ち悪いなぁと思い、いろいろ調べましたが、Launcherからの場合の設定変更方法がわからない。もしかすると、GoogleAppengineLauncher.app/Contents/Info.plist にPYTHONPATHを /System/Library/Frameworks/Python.framework/Versions/2.5/Extras/lib/python/twisted/internet と書くのかなぁ。。。と思ってはいるけど、まだやってません。

※この後やるかもしれない。いや面倒なので放置するかもしれない。。。

 でめでたくサーバー上にアップ♪。



で、ブラウザ(Mac上のiPhoneシミュレータ)で実行してみます。



う〜ん、なんで?。

「MyApplication」画面で実行時のログが見られそうです。



どうも、
: Non-ASCII character '\xe3' in file /base/data/home/apps/s~sugisugi-tinywebapp-2/1.350480277660344025/TinySample2.py
というのは、Pythonソースに日本語があることが問題みたい。
けどねぇ、ここは日本だし、おいらは日本人だしねぇ。。。

ということでネットを徘徊すると、こういう経験をした方はほかにもたくさんいらっしゃるようです。(というかこれは通過儀礼みたいなものか?、もしかして)

結果としては、

TinySample2.pyの最初の行に
「# -*- coding: utf-8 -*-」を挿入します。

日本語の出力時の指定は、
「self.response.out.write("もうちょっとぱっとしたこと、ありまへんの?" )」
ではなく、
「self.response.out.write(u"もうちょっとぱっとしたこと、ありまへんの?" )」
とします。

※どっちがかけてもダメ。

であらためて表示。



うん、めでたしめでたし♪。

0 件のコメント: