nkjmkzk.net

powered by Kazuki Nakajima

pythonからOracleに接続するための拡張モジュール、cx_Oracleのインストール方法

*太古の昔に書いたエントリをリバイスしました。

pythonスクリプトからOracle Databaseに接続するための実装(モジュール)はいくつかあるようですが、いわゆるデファクトっぽいのがcx_Oracleというモジュール。ドキュメント、ダウンロード先等は下記を参照ください。

僕はソースをとってきてインストールすることにしました。OSはOracle Linux 5.6 x86_64。Redhat EnterpriseLinux, CentOS, Scientific Linux等でも確認はしてませんが同じ手順でいけるはずです。コンパイルにはソフトウェア要件としてpython-develとOracle Databaseのクライアントライブラリがインストールされている必要があります。python-develはup2dateやyumコマンドでレポジトリが引っ張ってこれます。

[root@~]# yum install python-devel

レポジトリが登録されていない!という人は下記のコマンドでpublic-yumを登録してください。

[root@~]# cd /etc/yum.repos.d
[root@~]# wget http://public-yum.oracle.com/public-yum-el5.repo
[root@~]# vi public-yum.el5.repo
[ol5_u6_base]
name=Oracle Linux $releasever - U6 - $basearch - base
baseurl=http://public-yum.oracle.com/repo/OracleLinux/OL5/6/base/$basearch/
gpgkey=http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5
gpgcheck=1
enabled=1
[root@~]# yum install python-devel

Oracle DatabaseのクライアントライブラリはすでにそのOS上にOracle Databaseがインストールされていれば$ORACLE_HOME/libに存在します。クライアント側にOracle Databaseなんてインストールしねぇよ!、という場合はOracle Instant Clientをインストールします。これはフリーで利用可能です。RPMをダウンロードしてインストールしてください。

ダウンロード:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

[roo@~]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.2.0.x86_64.rpm oracle-instantclient11.2-devel-11.2.0.2.0.x86_64.rpm

そして上記ライブラリが$ORACLE_HOMEと$LD_LIBRARY_PATHに含まれていることが必要です。Oracle Instant Clientの場合は/usr/lib/oracle/11.2/client64が$ORACLE_HOMEとなり、その下の/usr/lib/oracle/11.2/client64/libを$LD_LIBRARY_PATHに含めます。

[root@~]# export ORACLE_HOME=/usr/lib/oracle/11.2/client64
[root@~]# export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH

まずtarボールを/var/opt等に保存して展開。

# tar xvfz cx_Oracle-5.1.tar.gz
# cd cx_Oracle-5.1/

そしてビルド&インストール。

[root@~]# python setup.py build
[root@~]# python setup.py install

これだけでOK。cx_Oracle.soが/usr/lib64/python2.4/site-packages/にインストールされています。

あとはpythonスクリプトの中で、

import cx_Oracle

とすればcx_Oracleのモジュールがロードできるはずです。

$LD_LIBRARY_PATHは忘れないうちにoracleユーザあたりの.bash_profileに登録しておきましょう。

with 3 comments

Written by 中嶋 一樹

5月 29th, 2011 at 1:07 pm

Posted in Uncategorized

Tagged with , ,

3 Responses to 'pythonからOracleに接続するための拡張モジュール、cx_Oracleのインストール方法'

Subscribe to comments with RSS or TrackBack to 'pythonからOracleに接続するための拡張モジュール、cx_Oracleのインストール方法'.

  1. [...] [...]

  2. [...] [...]

  3. [...] cx_Oracleが利用できること(cx_Oracleのインストール方法はこちら) [...]

Leave a Reply