GAEのPythonでプロキシ接続環境からデプロイする
2010年8月9日 プログラミング コメント (1)マジック攻略サイト構築をしていたら、
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
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
コメント
(未検証ですが、そのほかの手順(2.とか3.とか)もいらないのかも?)