gaeeyoの日記

2009年4月24日(金)

Python入門!!

App EngineでPythonの「Hello, world!」を動かした。

この機会にPython入門してみる。


まだ数時間しかさわってなけど、僕はPythonをphpと同じくらい気に入りそうな雰囲気。


去年の年末くらいからPerlを4ヶ月くらいやってたけど、「これから全部Perlでいくぜー」みたいな瞬間は一度もなかった。

パワーアップ完了

2日連続でソフトくんさきを1袋食っても

なんともないぜ。

[] Firefoxのクラッシュ

私がFirefoxを使い始めた2.0のころは、「遅い・重い」という印象ばかりで安定性が悪いという印象はなかったと思うんだけど、最近は毎日4〜5回クラッシュしてる。稼働率が高いし、複雑なソフトだからクラッシュの確立が高まるのは仕方ない部分もあるけど、もうちょっと安定してほし。

[][] ちょっと修正

2009-03-27にアップしたTvRockのRockバーをリサイズ可能にするだけのdll」が思ったよりたくさんダウンロードされていたので(200回くらい...)、ちょっと修正。

ダウンロードはこちらから。


変更点

  • シャットダウンしたときにもサイズが保存されるように
  • ウィンドウの角が丸くなるように (素の状態より若干丸いですが)

TvRock自体シャットダウンすると位置が保存されないので効果は半分ですが。

[][] GAE で Hello, world!

クラウドってよく聞くけど、なんだかわからずモヤモヤしてたので試してみることに。


AmazonとかGoogleとかMicrosoftのやつがあるけど、どれがいいのかな...。

Googleのやつがいちばん簡単そうですな。自宅サーバで何がいやかって、ソフトのインストールとか設定をするのがめんどくさい。そこに楽しみを見いだせない。「この環境でできる範囲でやってください」ってほうが楽。Googleのはそれに近いですな。タダで使えるし。


WindowsPython 2.5をインストール。2.6とか3.0も出ていたけど、チュートリアルには「2.5」と書かれていたのでおとなしく2.5をインストール。続けて、Google App Engine SDKをインストール。どちらもWindows Installerでインストールできるから楽ちんですな。


開発するときに使うのがdev_appserver.pyとappcfg.pyという2つのスクリプト。App Engine SDKをインストールすると、これらのファイルがインストールされてPAHTが通される。dev_appserver.pyを実行してみると、使い方がつらつら表示される。要するに自分が作成したアプリのパスをパラメータで指定すれば、ローカルでhttpサーバが立ち上がるみたい。自分のアプリを c:\projects\gae\helloworld に置いたら「dev_appserver.py c:\projects\gae\helloworld」とすれば良いみたいですな。


次に「Hello, world!」を表示するだけのアプリを作る。チュートリアルからコピペしてhelloworld.pyとapp.yamlを作る。そして、dev_appserver.py を実行。ブラウザで localhost:8080/ を見るとあっさり「Hello, world!」が表示された。


次にサーバへのアップロードを試してみる。appcfg.py を使えばいいみたい。appcfg.pyを実行すると使い方が表示される。アップロードは「appcfg.py update [directory]」みたいな。

ただ、そのまま実行するとエラーですな。サーバ側の準備がいるみたい。サイトでapplication-idをゲットしてapp.yamlのapplicationに設定。application-idをゲットするときにSMS認証とかいうのがあった。携帯のキャリアとメールアドレスを指定すると認証コードが携帯にメールで届く。ここ数日迷惑メールの量がはんぱなくて設定を厳しくしたばかりなのでメールが届くか不安だったが問題なく届いた。

これで update がうまくいった。今度はlocalhostじゃなくて(application-id).appspot.comにアクセスしてHello, world!が表示された。イヤッホウ。


いやいやいや、これが実際に自分がアップロードした「Hello, world!」かどうかわからんぞと思ったので「print 'てててててすと'」を追加してみたら問題発生。ああ、文字コードだ、あれをどっかに宣言しとかないとだめなんだ...と思ってググる...。

ファイルの先頭に「#!-*- coding:utf-8 -*-」を入れると...でた。


とりあえずここまでやってみて思ったんだけど、簡単でとっつきやすいですな。

Pythonをまるで知らないのでとりあえず本買ってみますかね...。