使用Django连接到Oracle云自治数据库时找不到64位Oracle客户端库

1sbrub3j  于 2023-03-17  发布在  Oracle
关注(0)|答案(1)|浏览(210)

按照本教程,当我尝试python manage.py runserver时,出现以下错误

django.db.utils.DatabaseError: DPI-1047: Cannot locate a 64-bit Oracle Client library: "dlopen(libclntsh.dylib, 0x0001): tried: 'libclntsh.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibclntsh.dylib' (no such file), '/usr/lib/libclntsh.dylib' (no such file, not in dyld cache), 'libclntsh.dylib' (no such file), '/usr/lib/libclntsh.dylib' (no such file, not in dyld cache)". See https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html for help

我已经安装了cx_oracleoracledb,什么都没有工作。我安装了macOS(英特尔x86)的Oracle即时客户端,钱包也被拉到了正确的位置。
是否有可以设置的环境变量,以便使用cx_oracle或oracledb告诉Oracle库的位置?

ki1q1bka

ki1q1bka1#

如果python-oracledb出现此错误,则应用程序包含对init_oracle_client()的调用。可以删除所有此类调用并使用默认的精简模式。
如果要继续使用python-oracledb“密集”模式,或者使用的是旧版本的驱动程序(cx_Oracle),请更改init_oracle_client()调用并传递lib_dir参数。(这在macOS Intel和Windows上有效)。请参阅在macOS上设置Oracle客户端库目录。例如:

import oracledb

oracledb.init_oracle_client(lib_dir="/Users/your_username/Downloads/instantclient_19_8")

要连接到Oracle ADB,请注意python-oracledb精简模式和密集模式之间的语法不同。请参阅连接到Oracle云自治数据库。

相关问题