web-dev-qa-db-ja.com

cx_Oracle.DatabaseError:DPI-1047:64ビットOracleクライアントライブラリをロードできません: "dlopen(libclntsh.dylib、1):image not found"

設定しようとしていますcx_Oracle Pythonで動作します。

私は使っている

  • Python 2.7.10、64ビット
  • cx_Oracleバージョン6.0.2
  • MacOS Sierra 10.12.6

次の環境変数を設定します。

export Oracle_HOME="/Volumes/DATA/Programs/PY/instantclient_12_1"
export DYLD_LIBRARY_PATH="$Oracle_HOME:$DYLD_LIBRARY_PATH"
export LD_LIBRARY_PATH=$Oracle_HOME
export PATH=$PATH:$Oracle_HOME
export Oracle_SID=edocd
export TNS_ADMIN=/Volumes/DATA/Programs/PY/instantclient_12_1/network/admin
export TWO_TASK=${Oracle_SID}

ここに私が試したものがあります:

  1. 管理者としてインストール
  2. Sudo python setup.py build
  3. Sudo python setup.py install

Oracle接続を確認するために簡単なスクリプトを実行しようとしたときに、sqlplus経由で正常に接続できました。

ここに私が受け取るエラーがあります:

cx_Oracle.DatabaseError:DPI-1047:64ビットOracleクライアントライブラリをロードできません: "dlopen(libclntsh.dylib、1):image not found"。 https://Oracle.github.io/odpi/doc/installation.html#macos を参照してください

6
samarth saxena

Ubuntu 16.04(64bit)用の私のソリューション

公式ガイド :のtl; dr:

1) instantclient-basic-linux.x64-12.2.0.1.0.Zip をダウンロードします

2)/ opt/Oracleディレクトリに抽出します:

$ Sudo mkdir -p /opt/Oracle
$ cd /opt/Oracle
$ unzip ~/Downloads/instantclient-basic-linux.x64-12.2.0.1.0.Zip

3)libaioパッケージをインストール

$ Sudo apt-get install libaio1

4)Oracle-instantclient.confファイルを次のように編集します。

$ Sudo sh -c "echo /opt/Oracle/instantclient_12_2 > /etc/ld.so.conf.d/Oracle-instantclient.conf"
$ Sudo ldconfig
6

リンク${your_instantclient_folder}-> ${Oracle_home}/lib

cd ${Oracle_HOME};
unzip instantclient-basic-macos.x64-x.x.x.Zip
ln -s instantclient_X_X lib

参照

1
namiha

@ anthony-tuiningaの答えを拡張するには:エラーメッセージのURLには従うべき手順があります。 https://Oracle.github.io/odpi/doc/installation.html#macos を参照してください。特に、Oracleクライアントライブラリが〜/ libまたは/ usr/local/libにあることを確認してください。 DYLD_LIBRARY_PATHまたはLD_LIBRARY_PATHまたはOracle_HOMEを設定しないでください。

0

私のために

source ~/.profile

インストール中にスキップしたステップでした。

0
Kishor Pawar