Python2.6.1 AMD64 + cx_Oracle

64bit化計画が着々と進行していたがここに来て大いなる敵が現る!

32bit時代はOraclePython + cx_Oracleで接続していたので、64bit化後もcx_Oracleしようと環境をイソイソと構築しているとcx_OracleWindows x64バイナリがないことが発覚!

夢の64bitワールド

Vista 64bit + Oracle11g 64bit + Oracleクライアント 64bit + Python2.6.1 64bit + cx_Oracle 64bit

が崩れ去ろうとしている。
cx_Oracleを32bitに妥協すると
Vista 64bit + Oracle11g 64bit + Oracleクライアント 32bit + Python2.6.1 32bit + cx_Oracle 32bit
というような男らしくない環境になってしまう!

仕事そっちのけでこれはもうしょうがないので、cx_OracleコンパイルするというRoad of King(王道)を突っ走った。
理屈はわからないが、コンパイルの手順は簡単だったので忘れないようにメモ。

使ったもの

手順

  1. OracleインストールディレクトリのOCI/lib/MSVC配下にあるファイルとディレクトリを丸々PythonインストールディレクトリにPCbuild/amd64というフォルダを作ってそこにコピー
  2. cx_Oracle-4.4.1.tar.gzを適当なフォルダに解凍する。
  3. コマンドプロンプトを起動
  4. カレントディレクトリを解凍したフォルダ(cx_oracle)に移動
  5. コマンドプロンプトで、以下を実行
setup.py build install

コンパイル時にワーニングが出るが見なかったことにする。

Python 2.6.1 AMD64でimport cx_Oracleしてもエラーが出ない!
Oracleにconnectできる!
テーブルをselectして数値データが取得できる!
まで確認した。

感激