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クライアントをインストールせずに同じことを行うことはできますか?または、同じことを行うために自分でモジュールを作成する方法について何か提案はありますか?
前もって感謝します!
通常、必要なのはライブラリだけですが、必ずしもSudoの権限は必要ありません。それらをソフトウェアが読み取れる場所に抽出し、それに応じて次の環境変数を設定します。
Oracle_HOME=path/to/where/you/extracted/libs
TNS_ADMIN=path/to/tnsnames.ora
Tnsnamesをスキップして、接続でホストやポートなどを指定するだけで幸運に恵まれましたが、cx_Oracleで必要になる可能性は十分にあります...何年も前に使用したときから覚えていません。
https://forum.omz-software.com/topic/184/Oracle-database からの抜粋:
Oracle用の純粋なpythonクライアントはなく、おそらくそうなることはないでしょう。SQLalchemyのような素晴らしいサードパーティツールセットでさえ、Oracleデータベースサーバーとの実際の通信を行うために、下にあるcx_Oracleに依存しています。
—また、Googleによる決定では、答えはノーです。今日の時点で、純粋なPython Oracleクライアントは存在しないようです。
使用したくない場合はcx_Oracle expectスクリプトを使用する必要があります。 (for python pexpect)。ただし、すべての期待に対応するには注意が必要です。