Pythonのダウングレード

RESTFUL APIで、OAUTHを使おうとしたらエラーが出た

[Errno 13] file not accessible: '/usr/local/lib/python2.6/dist-packages/oauth-1.0.1-py2.6.egg' 

どうやらGoogleAppEnginePythonのバージョンが違うらしい
ubuntuデフォルトは2.6、GoogleAppEngineの要求は2.5

ダウングレード作業

ここでは2.6を消して2.5をソースからインストールする

削除
$ sudo apt-get remove python
インストール準備
$ sudo apt-get install  zlib1g-dev
$ sudo apt-get install libssl-dev
$ sudo apt-get install make
$ sudo apt-get install gcc

Pythonをインストールに必要なものをインストール

Python2.5.2設定
$ wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tar.bz2
$ bzip2 -dc Python-2.5.2.tar.bz2 | tar xvf - 
$ cd Python-2.5.2/
$ ./configure 
$ emacs Modules/Setup
SSL=/usr/local/ssl
_ssl _ssl.c \
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
        -L$(SSL)/lib -lssl -lcrypto

zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz

Ubuntuでbz2を解凍したい場合は上記で。
また、sslとzlibを使うために作成されたSetup内の幾つかのコメントを外す

Python2.5.2インストール
$ make
$ sudo make install
ライブラリインストール
$ cd
$ wget http://peak.telecommunity.com/dist/ez_setup.py
$ sudo python ez_setup.py 
$ sudo easy_install oauth

ライブラリを追加したらGAEは再起動しよう
oauthがエラー無くインポートされて完了
あとで気付いたんだけど、GAEだとこのoauthは使えないので不要だった

雑記

別の手段

ダウングレード以外の方法もあった

Ubuntuにはデフォルトで対応していない

  • /home/hoge/ に個別にインストールする

これは気づいたときにはあとの祭りだった
./configure 時にprefix引数を設定する
まぁ他に使う人が居るわけじゃないし、という言い訳で次の機会があったらそうしよう

感想

2.6でもテストコードは動いていたので勘違いして進めていたなぁ

作業時に出たエラー

列挙しとく
zipimport.ZipImportError: can't decompress data; zlib not available
AttributeError: 'module' object has no attribute 'HTTPSHandler'
configure: error: no acceptable C compiler found in $PATH
make: *** [Modules/zlibmodule.o] エラー 1