Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Python DPI-1047 Tidak dapat menemukan dlopen(libclntsh.dylib) di macOS

Kode saya selalu melakukan ini:

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

Ini adalah solusi yang paling nyaman. Jika Anda mendapatkan kesalahan 'sudah diinisialisasi', pastikan Anda hanya memanggil init_oracle_client() sekali per proses Python.

Atau Anda dapat menemukan biner cx_Oracle Anda seperti:

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

dan kemudian, di jendela terminal, lakukan sesuatu seperti:

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

Ini untuk macOS - setiap pengguna Linux yang membaca ini harus mengetahui bahwa solusi ini tidak akan berfungsi di Linux.

oradiag_xxx direktori adalah untuk jejak "klien" Oracle. Anda dapat menghapus ini kapan saja.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kesalahan SQLPlus AUTO_INCREMENT

  2. Oracle Substring REGEXP

  3. Untuk apa Hibernate memetakan tipe data boolean saat menggunakan database Oracle secara default?

  4. Mekanisme Penyisipan Basis Data

  5. Apakah ada cara untuk memberikan subquery alias di Oracle 11g SQL?