先週、数年越しの面倒な仕事が終わったので、今週から新しい仕事を本格的に開始する。
内容は、Google App Engineを使っての開発業務になりそう。
さて、昨日、そのための環境を作っていたんだけれど、結構ハマる所があったので、メモ。
いろんなウェブ上のドキュメントを見るかぎり、Pythonでの開発には、
Python2.5
AppEngineSDK/Python
が必須。
でも、python2.5にはSSLモジュールが含まれていないから、これは別途コンパイルしなくちゃいけない。
SSLなしで使おうとすると、
WARNING:root:No ssl package found. urlfetch will not be able to validate SSL certificates
なんて、怒られてしまう。
で、SSLモジュールをコンパイルするにはVC2003かMingW32が必要で、もし、ここで全部オープンソースでやるんだったら、MingW(かCygwin)を使う必要がある。
で、SSLのパッケージをダウンロードしてコンパイルしてみる。
>python setup.py build -c mingw32
エラーを吐いて止まってしまう。python2.5に含まれるversion.pyが例外を吐いているみたいだ。事情はよくわからないんだけれど、該当部分のpythonのソースをみてみると、なんだか、gccのバージョンをチェックしてるみたい。たぶん、この部分をコメントアウトして強制的に例外を吐かないようにさせても、問題ないだろう。でも、バージョンチェックをコメントアウトするなんて、あんまり美しくない解決策だ。ちょっと考えてみる。
Cygwinのバージョン表記のルールが変わってしまったのが問題のようだ。(つか、最新のCygwinではpython2.5なんて昔のバージョンはサポートされてないってことかもしれない)
考えた末、バージョンチェックの正規表現を少し変更。
version.pyの100行目を
version_re = re.compile(r'^(\d+) \. (\d+) (\. (\d+))? (\. (\d+))?$',
内容は、Google App Engineを使っての開発業務になりそう。
さて、昨日、そのための環境を作っていたんだけれど、結構ハマる所があったので、メモ。
いろんなウェブ上のドキュメントを見るかぎり、Pythonでの開発には、
Python2.5
AppEngineSDK/Python
が必須。
でも、python2.5にはSSLモジュールが含まれていないから、これは別途コンパイルしなくちゃいけない。
SSLなしで使おうとすると、
WARNING:root:No ssl package found. urlfetch will not be able to validate SSL certificates
なんて、怒られてしまう。
で、SSLモジュールをコンパイルするにはVC2003かMingW32が必要で、もし、ここで全部オープンソースでやるんだったら、MingW(かCygwin)を使う必要がある。
で、SSLのパッケージをダウンロードしてコンパイルしてみる。
>python setup.py build -c mingw32
エラーを吐いて止まってしまう。python2.5に含まれるversion.pyが例外を吐いているみたいだ。事情はよくわからないんだけれど、該当部分のpythonのソースをみてみると、なんだか、gccのバージョンをチェックしてるみたい。たぶん、この部分をコメントアウトして強制的に例外を吐かないようにさせても、問題ないだろう。でも、バージョンチェックをコメントアウトするなんて、あんまり美しくない解決策だ。ちょっと考えてみる。
Cygwinのバージョン表記のルールが変わってしまったのが問題のようだ。(つか、最新のCygwinではpython2.5なんて昔のバージョンはサポートされてないってことかもしれない)
考えた末、バージョンチェックの正規表現を少し変更。
version.pyの100行目を
version_re = re.compile(r'^(\d+) \. (\d+) (\. (\d+))? (\. (\d+))?$',
re.VERBOSE)
に変更してみる。
バージョンの問題はとりあえず、落ち着いたけれど、今度は、GCCの実行権限がないとエラーを吐く。
cygwinのgcc.exeをみてみると、
これ、symlinkになってるのね。リンク先はgcc4.exeか。
要するに、gcc4とgcc3を共存させるための措置なんだろうけれど、このsymlinkをウィンドウズ側が認識できなくてトラブルになるようだ。
とりあえず、gcc.exeをgcc4.exeのコピーで置き換えて乗り切ることにする。
コンパイル成功。
あとは、
> python setup.py install
でおしまい。
で、そのあとで気がついたんだけれど、
このコンパイル済のSSLパッケージをWinインストーラで配布してくれているひとがいらっしゃった。
先に見つけられたら面倒な事考えなくて住んだのになぁ。
まあ、とりあえず、問題は解決。
あと、Kay frameworkをインストールしたよ。
に変更してみる。
バージョンの問題はとりあえず、落ち着いたけれど、今度は、GCCの実行権限がないとエラーを吐く。
cygwinのgcc.exeをみてみると、
これ、symlinkになってるのね。リンク先はgcc4.exeか。
要するに、gcc4とgcc3を共存させるための措置なんだろうけれど、このsymlinkをウィンドウズ側が認識できなくてトラブルになるようだ。
とりあえず、gcc.exeをgcc4.exeのコピーで置き換えて乗り切ることにする。
コンパイル成功。
あとは、
> python setup.py install
でおしまい。
で、そのあとで気がついたんだけれど、
このコンパイル済のSSLパッケージをWinインストーラで配布してくれているひとがいらっしゃった。
先に見つけられたら面倒な事考えなくて住んだのになぁ。
まあ、とりあえず、問題は解決。
あと、Kay frameworkをインストールしたよ。