sql >> Database >  >> RDS >> Oracle

Python DPI-1047 Kan dlopen(libclntsh.dylib) niet vinden op macOS

Mijn code doet altijd dit:

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

Dit is de handigste oplossing. Als je een 'reeds geïnitialiseerde' foutmelding krijgt, zorg er dan voor dat je alleen init_oracle_client() aanroept eenmaal per Python-proces.

Als alternatief kunt u uw cx_Oracle binary vinden als:

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

en doe dan in een terminalvenster iets als:

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

Dit is voor macOS - alle Linux-gebruikers die dit lezen, moeten zich ervan bewust zijn dat deze oplossing niet werkt op Linux.

De oradiag_xxx directory is voor Oracle "client" traces. Je kunt dit op elk moment verwijderen.




  1. Hoe automatisch te verhogen in PostgreSQL?

  2. Gemiddelde tijd van bewerkingen die in de database zijn opgeslagen

  3. Basistoestemming in Bugzilla om clients te scheiden

  4. Hoe kan ik e-mail verzenden vanuit de PostgreSQL-trigger?