Oracle
 sql >> база данни >  >> RDS >> Oracle

Python DPI-1047 Не може да намери dlopen(libclntsh.dylib) на macOS

Моят код винаги прави това:

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() веднъж за процес на 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. Можете да изтриете това по всяко време.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Не може да се използва DROP TABLE IF EXISTS в schema.sql за приложение за Spring Boot

  2. Как да актуализирате ID в таблица 2 от таблица 1 в Oracle sql

  3. Как да използвам запис за цикъл на референтен курсор?

  4. Как да сравнявам низове в sql, игнорирайки главни и малки букви?

  5. ORA-00904 Невалиден идентификатор” за идентификатор в група по клауза