マジック攻略サイト構築をしていたら、
Google App EngineのPythonでプロキシからデプロイするところで、
いろいろはまりました。

なんだかんだ頑張って、Google先生から情報を聞き出して何とかなったのですが、
他にも困っている人はいそうなので、僕の場合の解決手順をメモしておきます。
(この手順で解決を保証するものではありませんので、自己責任でお願いします)

1.プロキシ設定を行なう。

 環境変数HTTP_PROXYとHTTPS_PROXYでプロキシを指定する

 例)set HTTP_PROXY=http://hogehoge.com:3128
   set HTTPS_PROXY=http://hogehoge.com:3128

 プロキシ経由でインターネットに接続する環境だと、
 これを行なわないと、デプロイ時にエラーが発生するみたいです。
 「URLError: <urlopen error (10060, ’Operation timed out’)> 」

2.SSLモジュールをインストールする

 http://pypi.python.org/pypi/ssl-py2.5-win32/1.15 の、
 ssl-py2.5-win32-1.15.exe をダウンロードして実行。
 解凍されたフォルダ(SSL)を、Python25Libsite-packagesの下に置く

 これを行なわないと、デプロイ時に警告が出るようです。
 「WARNING:google.appengine.tools.appengine_rpc:ssl module not found.」
 まぁ、警告なので無視しても良いのですが。

3.Python 2.5 urllib2 and httplib modules 修正版をインストールし、
  appengine_rpc.pyを修正する

 (1) http://pypi.python.org/pypi/setuptools
   で、自分のバージョンにあったモジュールをダウンロードし、実行。
   (setuptools-0.6c11.win32-py2.5.exe)
 (2) http://pypi.python.org/pypi/httpsproxy_urllib2/
   で、httpsproxy_urllib2-1.0.tar.gz (md5)を落として、解凍してインストール
  (setup.py install)
 (3) C:/Program Files/Google/google_appengine/google/appengine/tools/appengine_rpc.py
  の417行目を修正
   opener.add_handler(https_handler())
    ↓
   opener.add_handler(urllib2.HTTPSHandler())

 2.でSSLモジュールをインストールしてから、
 これらを行なわないと、デプロイ時にSSLでエラーが発生するようです。
 「SSL23_GET_SERVER_HELLO:unknown protocol」

※上記の手順をすべてやっても、GAEのラウンチャーからはデプロイできないみたいです。
 コマンドを覚えるのは苦手なので、バッチファイルからデプロイしてます。
 おかげでワンクリックでデプロイできるようになったので、めでたしめでたし。

※使用環境:Windows XP、Python 2.5.2、GAE1.3.5(といってもこの環境での成功を保証するわけではありません)

<主に参考にしたページ>
 http://code.google.com/intl/en/appengine/docs/python/tools/uploadinganapp.html#Using_an_HTTP_Proxy
 http://www.g-powered.com/google-app-engine/how-tos/google-app-engine-appcfg-behind-proxy

コメント

イッシー
2010年8月20日19:15

最近出た GAE1.3.6 だと、3.(3)はいらないみたいですね。
(未検証ですが、そのほかの手順(2.とか3.とか)もいらないのかも?)