sql >> Databáze >  >> RDS >> Oracle

Python DPI-1047 Nelze najít dlopen(libclntsh.dylib) v systému macOS

Můj kód vždy dělá toto:

import os
import platform
if platform.system() == "Darwin":
    cx_Oracle.init_oracle_client(lib_dir=os.environ.get("HOME")+"/Downloads/instantclient_19_8")

Toto je nejpohodlnější řešení. Pokud se vám zobrazuje chyba „již inicializováno“, ujistěte se, že voláte pouze init_oracle_client() jednou na proces Pythonu.

Případně můžete najít svůj binární soubor cx_Oracle jako:

[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'>

a pak v okně terminálu proveďte něco jako:

ln -s $HOME/Downloads/instantclient_19_8/libclntsh.dylib $HOME/.local/lib/python3.9/site-packages

Toto je pro macOS – všichni uživatelé Linuxu, kteří toto čtou, by si měli být vědomi, že toto řešení nebude fungovat na Linuxu.

oradiag_xxx adresář je pro trasování "klienta" Oracle. Toto můžete kdykoli smazat.




  1. 'NOT LIKE' v dotazu SQL

  2. Počítat počet po sobě jdoucích návštěv

  3. Jaké jsou různé typy omezení dostupných v SQL Server - SQL Server / Výukový program T-SQL, část 50

  4. Jak sledovat změny ve více sloupcích v databázové tabulce pro účely auditu?