2017-03-24 9 views
6

cx_Oracleがインストールされており、正常にインポートできます。しかし、私はOracleの接続を確立しようとすると、私はこのエラーを取得:cx_Oracle.InterfaceError:Oracle環境ハンドルを取得できませんMac

Traceback (most recent call last): File "<stdin>", line 1, in <module> cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle

私のオペレーティングシステムはMacOSXのある、そして私のORACLE_HOMEは、instantclient_11_2を指しています。

答えて

2

最初のものが最初です。

cx_oracleがOracleクライアントとまったく同じバージョン用に構築されているかどうかを確認してください。

import cx_Oracle 
cx_Oracle.clientversion() 

これは、予想されるバージョンを返します。

バージョンが異なる場合は、正しいバージョンに対して再構築する必要があります。

+0

私は(11,2,0,3,0)を得ました。これは正しいバージョンです。 –

+0

@ rijo-simon [OK]を、解決のために関連する質問を試しましたか? –

+0

はい、ほとんどすべてを試しました。いずれのソリューションでも解決策はありませんでした。 –

2

インスタント・クライアントの場合は、ORACLE_HOMEを設定しないでください。代わりに、これらの指示に従ってください:あなたはまた、あなたのクライアントのことを確認することができますSQL * Plusのパッケージをダウンロードし、解凍した場合

cd $HOME 
mkdir -p lib 
cd lib 
cp /the/location/to/instantclient_11_2/*dylib* . 
ln -s libclntsh.dylib.11.1 libclntsh.dylib 

あなたがインスタントクライアントに12.1のものを使用することができます場合は、

cd $HOME 
mkdir -p lib 
cd lib 
ln -s /the/location/to/instantclient_12_1/libclntsh.dylib.12.1 libclntsh.dylib 

少し簡単ですインストールは正常に動作しています。

+0

私は上記の手順を実行し、それは助けになりませんでした。この場合、ORACLE_HOMEはどのようにすべきですか? –

+0

ORACLE_HOMEはまったく賭けてはいけません。 –

+0

ORACLE_HOMEの設定を解除しても問題は解決しませんでした。問題は残っています。 –

1

接続方法を修正しましたか?あなたが正しく設定したように聞こえます。

(自分自身の情報を記入)次のことを試してください:

ip_addr = 'ip address' 
port = 1521 
sid = 'sid' 
dsn_tns = cx_Oracle.makedsn(ip_addr, port, sid) 
db = cx_Oracle.connect('username', 'password', dsn_tns) 

問題が解決しない場合は、お使いのLD_LIBRARY_PATHが正しく設定されていることを確認してください。

関連する問題