【发布时间】:2021-11-08 21:16:03
【问题描述】:
我收到以下错误。
cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: "dlopen(libclntsh.dylib, 1): image not found".
我发现的一个解决方法是插入
cx_Oracle.init_oracle_client(lib_dir=path) 导致 Oracle 客户端库已初始化错误。
但是我没有在代码中的任何地方调用init_oracle_client。我在 Mac 上使用 Python 3.8.11 和 cx_Oracle 8.2.1。
最初运行代码时,我没有安装任何 Oracle 客户端。然后我下载了 instantclient_19_8,但是将它与 init_oracle_client 一起使用会导致已经初始化的错误。 我在这里看到了这个https://cx-oracle.readthedocs.io/en/latest/user_guide/initialization.html。
我不确定 cx_Oracle 二进制文件在哪里,当我转到具有当前 anaconda 环境的位置时,我看到一个包含自述文件的 cx_Oracle-doc 文件夹。此外,在 ~ 中创建了一个 oradiag_my_username 文件夹。不确定需要修复什么。
【问题讨论】:
-
你能显示代码吗?
-
与代码有什么联系吗?现在错误是在调用
cx_Oracle.connect(username,password,dsn) -
试试this similar question的答案,看看它是否能解决您的问题。
-
可能不像评论员所说的那样适用于旧版本。确保您没有使用捆绑的 Python。 - 这似乎是第一条指令。你怎么检查那个。?我可以确认我拥有的Python版本与基础环境中的不一样。
标签: python oracle macos cx-oracle