Min kode gør altid dette:
import os
import platform
if platform.system() == "Darwin":
cx_Oracle.init_oracle_client(lib_dir=os.environ.get("HOME")+"/Downloads/instantclient_19_8")
Dette er den mest bekvemme løsning. Hvis du får en "allerede initialiseret" fejl, skal du sørge for kun at kalde init_oracle_client()
en gang pr. Python-proces.
Alternativt kan du finde din cx_Oracle binære som:
[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'>
og derefter, i et terminalvindue, skal du gøre noget som:
ln -s $HOME/Downloads/instantclient_19_8/libclntsh.dylib $HOME/.local/lib/python3.9/site-packages
Dette er til macOS - alle Linux-brugere, der læser dette, bør være opmærksomme på, at denne løsning ikke virker på Linux.
oradiag_xxx
bibliotek er til Oracle "klient" spor. Du kan slette dette når som helst.