Python ibm_dbのインストール方法 |
・mxODBCを使用する
・ibm_dbを使用する
という2つの方法があるようです。
最初、mxODBCで接続しようとしたのですが、
>>> import mx.ODBC
Traceback (most recent call last):
File "", line 1, in ?
File "mx\ODBC\__init__.py", line 39, in ?
File "mx\ODBC\ODBC.py", line 18, in ?
ImportError: cannot import name license
というエラーが発生し、泣く泣くあきらめました。
・・・原因はいまだに不明です。
そこで、ibm_dbです。
http://pypi.python.org/pypi/ibm_db/
最初は簡単にインストールできるだろう。と思っていたのですが・・・
苦難の道のりでした。
■Python2.5が必用
まず、ibm_dbはPython2.4でビルドできませんでした。
CentOS5.2にインストールされているPythonのバージョンは2.4.3なので、
Pythonのバージョンアップが必用です。
※CentOSにnginx+mod_wsgiの環境を作るとき、Python2.5.xに
こだわった理由はこれです。
■ibm_dbのインストール
easy_installからインストールすると楽です。
※ソースからだと、sqlcli1.hというファイルを要求されます。
#wget http://peak.telecommunity.com/dist/ez_setup.py
#python ez_setup.py
#easy_install ibm_db
これでインストール完了です。
実際使おうとすると
#python
>>> import ibm_db
Traceback (most recent call last):
File "", line 1, in
ImportError: libdb2.so.1: cannot open shared object file: No such file or directory
とエラーになります。
libdb2.so.1を認識させるため
#vi /etc/ld.so.conf.d/db2.conf
/opt/ibm/db2/V9.5/lib32
#設定反映
#ldconfig
これでibm_dbがインポートできるようになります。
【参考URL】
Python2.5をzlib付きでビルドしてインストール(アップグレード)する方法(linux)
IBM DB2、Cloudscape および Apache Derby 関数
「file is not a dynamic executable or shared object」とエラー表示される
※おまけ
ibm_dbをソースからインストールする場合
ibm_dbインストール時、sqlcli1.hというヘッダファイルを要求されます。
しかし、DB2をインストールしただけではこのファイルはインストールされません。
※インストール時にオプションの指定があるのかも。
無いものはしょうがないので、ダウンロードしてきます。
http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg21256051#r17
Application Development Clientをダウンロードします。
FP17_MI00248_ADCL.tarというファイルが落とせたら、
/workにコピーします。
#cd /work
#tar xvf FP17_MI00248_ADCL.tar
#cd adcl
このディレクトリにdb2setupがありますが、
なぜか起動してくれませんでした。
そのため、db2_installを実行しインストールします。
#./db2_install
以下のキーワードを 1 つ以上指定し、
スペースで区切って DB2 製品をインストールしてください。
キーワード 製品説明
DB2.ADCL DB2 Application Development Client for LINUX26
"ヘルプ" を入力して製品名を再表示してください。
"終了" を入力して終了してください。
***********************************************************
DB2.ADCLと入力し、エンターキーを入力すると
インストールが実行されます。
この操作で、
/opt/IBM/db2/V8.1/include/
にsqlcli1.hが配置されます。
環境変数を参照して、ヘッダファイルを探しにいくので
#vi ~/.bashrc
export IBM_DB_DIR=/opt/IBM/db2/V8.1/
export IBM_DB_LIB=/opt/ibm/db2/V9.5/lib32/
として、環境変数を足してやります。
こうして、
#python setup.py install
でインストールできるはず。
今思えば、DB2インストール時にカスタムを選択して、
ヘッダを入れればいいんじゃないか?と思いますが
追試する気力がありません・・・