web-dev-qa-db-ja.com

Oracleのクライアントとcx_OracleをインストールせずにOracleデータベースにアクセスするにはどうすればよいですか?

Python 2.4と2.6を別々に実行している2つのRHELサーバーがあります。アクセスする必要があるもう一方のサーバーにOracleデータベースがあります。

RHELサーバーにcx_Oracleをインストールしようとしましたが、最初にOracleクライアントをインストールする必要があることがわかりました。

問題は、両方のRHELサーバーにOracleのクライアントをインストールする権限がないことです。同じサーバー上で、Perlプログラムは以下を使用してOracleデータベースに接続できます。

DBI->connect("dbi:Oracle:Host=myhost.prod.com;sid=prddb",'username','password')

Python cx_OracleとOracleクライアントをインストールせずに同じことを行うことはできますか?または、同じことを行うために自分でモジュールを作成する方法について何か提案はありますか?

前もって感謝します!

14
Gary

通常、必要なのはライブラリだけですが、必ずしもSudoの権限は必要ありません。それらをソフトウェアが読み取れる場所に抽出し、それに応じて次の環境変数を設定します。

Oracle_HOME=path/to/where/you/extracted/libs
TNS_ADMIN=path/to/tnsnames.ora

Tnsnamesをスキップして、接続でホストやポートなどを指定するだけで幸運に恵まれましたが、cx_Oracleで必要になる可能性は十分にあります...何年も前に使用したときから覚えていません。

4
user632657

https://forum.omz-software.com/topic/184/Oracle-database からの抜粋:

Oracle用の純粋なpythonクライアントはなく、おそらくそうなることはないでしょう。SQLalchemyのような素晴らしいサードパーティツールセットでさえ、Oracleデータベースサーバーとの実際の通信を行うために、下にあるcx_Oracleに依存しています。

—また、Googleによる決定では、答えはノーです。今日の時点で、純粋なPython Oracleクライアントは存在しないようです。

6
Erik Kaplun

使用したくない場合はcx_Oracle expectスクリプトを使用する必要があります。 (for python pexpect)。ただし、すべての期待に対応するには注意が必要です。

0
FariZ