私のコードは常にこれを行います:
import os
import platform
if platform.system() == "Darwin":
cx_Oracle.init_oracle_client(lib_dir=os.environ.get("HOME")+"/Downloads/instantclient_19_8")
これが最も便利なソリューションです。 「初期化済み」エラーが発生した場合は、init_oracle_client()
のみを呼び出すようにしてください。 1回 Pythonプロセスごと。
または、次のようなcx_Oracleバイナリを見つけることもできます:
[email protected]:~$ python
Python 3.9.6 (default, Aug 20 2021, 13:36:17)
[Clang 12.0.5 (clang-1205.0.22.11)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cx_Oracle
>>> cx_Oracle
<module 'cx_Oracle' from '/Users/cjones/.local/lib/python3.9/site-packages/cx_Oracle.cpython-39-darwin.so'>
次に、ターミナルウィンドウで、次のような操作を行います。
ln -s $HOME/Downloads/instantclient_19_8/libclntsh.dylib $HOME/.local/lib/python3.9/site-packages
これはmacOS用です。これを読んでいるLinuxユーザーは、このソリューションがLinuxでは機能しないことに注意する必要があります。
oradiag_xxx
ディレクトリは、Oracleの「クライアント」トレース用です。これはいつでも削除できます。