sql >> Database teknologi >  >> RDS >> Oracle

Python DPI-1047 Kan ikke finde dlopen(libclntsh.dylib) på macOS

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.




  1. Hvordan omskriver man gammel mysql-php-kode med forældede mysql_*-funktioner?

  2. Hvorfor er en IX-lås kompatibel med en anden IX-lås i InnoDB?

  3. Får fejlfunktion to_date(tidsstempel uden tidszone, ukendt) eksisterer ikke

  4. Hvordan får man flere poster mod én post baseret på relation?