Python 在 macOS 上“DPI-1047 无法找到 dlopen(libclntsh.dylib)”

2024-04-26

我收到以下错误。

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 Client Library has not beeninitialized 错误。

不过我不打电话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 https://cx-oracle.readthedocs.io/en/latest/user_guide/initialization.html.

我不确定 cx_Oracle 二进制文件在哪里,当我转到具有当前 anaconda 环境的位置时,我看到一个包含自述文件的 cx_Oracle-doc 文件夹。另外,~中还创建了一个oradiag_my_username文件夹。不确定需要修复什么。


现在最简单的解决方案是使用最新的 cx_Oracle 版本,该版本已重命名为 python-oracledb,请参阅发布公告 https://cjones-oracle.medium.com/open-source-python-thin-driver-for-oracle-database-e82aac7ecf5a。这不需要 Oracle 客户端库(它们是可选的)。

如果您使用cx_Oracle(或python-oracledb的Thick模式),您可以使用如下内容:

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() once如果您使用的是 cx_Oracle 8,则每个 Python 进程。如果您使用的是新版本 (重命名为 python-oracledb https://cjones-oracle.medium.com/open-source-python-thin-driver-for-oracle-database-e82aac7ecf5a),然后你可以调用init_oracle_client()只要参数相同即可多次。

或者,您可以找到您的 cx_Oracle 二进制文件,例如:

cjones@mac:~$ 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。

The oradiag_xxx目录用于 Oracle“客户端”跟踪。您可以随时删除它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 在 macOS 上“DPI-1047 无法找到 dlopen(libclntsh.dylib)” 的相关文章

  • 相当于 Oracle 的 SQL*Plus 中 MySQL 的 \G

    在 Oracle 的 SQL Plus 中 SELECT 的结果以表格方式显示 有没有办法以键值方式显示一行 例如MySQL的 G option http slaptijack com software enabling vertical
  • 当数据帧预排序时 pandas.groupby.nsmallest 会丢弃多索引

    我正在使用 pandas 0 22 0 python 版本 3 6 4 groupby与 nsmallest方法查找数据帧每组中的最小项目 这是一个示例数据框 gt gt gt import pandas as pd gt gt gt df
  • Python:球体的交集

    我对编程非常陌生 但我决定承担一个有趣的项目 因为我最近学会了如何以参数形式表示球体 当三个球体相交时 有两个不同的交点 除非它们仅在一个奇点处重叠 球体的参数表示 我的代码是根据答案修改的Python matplotlib 绘制 3d 立
  • 更改称为通知的 applescript 的图标

    有了 OSX Mavericks 我们现在可以带有 applescript 的通知 http www macosautomation com mavericks notifications index html很容易 然而 似乎没有一种方法
  • 使用 pandas 插值将每月值转换为每日值

    我有 1000 列的 12 个平均每月值 我想使用 pandas 将数据转换为每日数据 我尝试过使用插但我得到了从 31 01 1991 到 31 12 1991 的每日值 这并不涵盖全年 一月份的值没有得到 我用了日期范围用于我的数据框的
  • 快速分类(分箱)

    我有大量条目 每个条目都是浮点数 这些数据x可以通过迭代器访问 我需要使用像这样的选择对所有条目进行分类10
  • 从 ipywidgets FileUpload 访问多个上传文件的内容

    我刚刚学习 ipywidgets 并在 Jupyter Notebook Python 3 中使用它们 基本上 我试图允许用户使用 FileUpload 上传多个文件 然后尝试访问这些文件的内容 以便我可以保存每个文件进入系统 我让它只适用
  • 如何在 Flask-SQLAlchemy 中通过 id 删除记录

    I have users我的 MySql 数据库中的表 这张表有id name and age fields 我怎样才能删除一些记录id 现在我使用以下代码 user User query get id db session delete
  • 如何以最大窗口形式保存 matplotlib 图而不是默认大小?

    有人知道我应该如何解决这个问题吗 我知道有一个保存按钮 我可以手动执行此操作 但我正在绘制 100 多个图表 所以我希望有一种方法可以自动执行此操作 我正在使用 TkAgg 后端 并寻找任何可能的解决方案 通过在我的绘图函数末尾使用以下内容
  • Python 请求:使用 Multipart/form-data 在 Facebook 上发布图像

    我正在使用 facebook API 在页面上发布图像 我可以使用以下命令从网络发布图像 import requests data url url caption caption access token token status requ
  • 获取小部件的背景颜色 - 真的

    我无法获取小部件的实际背景颜色 在我的特殊情况下 我在使用 QTabWidget 中的小部件时遇到问题 这是在Windows7上 因此 经典的小部件有一些灰色背景 而选项卡内的小部件通常用白色背景绘制 I tried def bgcolor
  • 使用 nditer 进行浅层迭代

    我有这样一个数组 gt gt gt y np random randint 0 255 2 2 3 gt gt gt array 242 14 211 198 7 0 235 60 81 164 64 236 我必须迭代每个triplet元
  • 在 RGB 图像上绘制多类语义分割透明叠加

    我有语义分割掩码的结果 值在 0 1 之间 需要大津阈值来确定什么是积极的 我想直接在 RGB 图像上绘制 在 RGB 图像上每个预测类具有不同的随机颜色 我使用以下内容绘制了具有单一颜色的单个蒙版 是否有一个包或简单的策略可以为多类别做到
  • 在组织内部分发我的 python 模块

    我用 python 制作了一些模块 我想将它们分发到我的组织内 这些模块已经存储在BitBucket中 例如 有什么方法可以使用 pip install 来分发它们吗 正确的方法是什么 您可以从 GitHub 进行 pip 安装 并且应该能
  • 如何编写凯撒密码 Python

    我不知道如何开始编写程序 input input Input the text you would like encrypted def cipher text letter code for i in input number code
  • 如何防止模块被导入两次?

    在编写python模块时 有没有办法防止它被客户端代码导入两次 就像 c c 头文件一样 ifndef XXX define XXX endif 非常感谢 Python 模块不会被多次导入 仅运行两次 import 不会重新加载模块 如果你
  • 一旦玩家与矩形对象发生碰撞,如何从屏幕上删除它?

    in draw 函数 我试图在玩家 pos 敌人 pos 时删除矩形对象 但 del 不起作用 有什么办法可以彻底删除敌人的物体吗 是否有内置的 pygame 函数可以删除我不知道的对象 draw player def draw enemy
  • Python从更高级别的包导入模块

    这是我的包层次结构 app init py Empty file server py global vars py handlers init py Empty file url1 init py Empty file app1 py ap
  • 从纪元到相对日期的秒数

    我正在处理自纪元以来的日期 并且已经得到了 例如 date 6928727 56235 我想将其转换为另一种相对格式 以便我能够将其转换为与纪元相关的格式 使用 time gmtime date 它返回 year 1970 mon 3 da
  • -bash: gulp: 在 Mac 中找不到命令

    我尝试在 mac 中安装 gulp 如下所示 Is iMac itop npm root Users itop node modules Is iMac itop npm config set prefix usr local Is iMa

随机推荐

  • 使用图像的java自定义形状框架[重复]

    这个问题在这里已经有答案了 我喜欢创建一个像这个图像一样的java jframe 我已经用不同的形状 如三角形 圆形 多边形和一些疯狂的形状 创建了jframe 但是问题是太难 99 不可能 创建像这个图像的形状 所以我怎样才能制作一个像这
  • 在我的 flutter 应用程序中单击容器时更改容器的颜色

    我通过 API 获取了一些兴趣 数据 并向他们展示了使用未来的构建器作为容器 我想在单击容器时更改容器的背景颜色 这是我所做的 当我单击一个容器时 它会更改所有容器的背景颜色 我在容器的颜色中添加了一个 if 条件来检查它是否被单击 颜色
  • 表达式类型不明确,没有更多上下文 swift 4.0

    我正在实施pod Socket IO Client Swift but in SocketEngine swift文件我收到此错误 private func handleBase64 message String binary in bas
  • Proguard 混淆不起作用

    我试图混淆我的包名称 包括我使用的库之一 我在我的 gradle 文件中使用这个构建配置 buildTypes debug versionNameSuffix Development debuggable true runProguard
  • 使用 openGL、SOIL 加载图像

    我尝试了很多使用 SOIL 在 openGL 中加载和显示图像的示例 运行下面的源代码时 它仅显示一个没有图像的白色四边形 我尝试打开一个名为 foto 的图像 我将图像文件放在程序的文件夹中 bool keyStates new bool
  • Delphi:设置 TByteDynArray 长度的问题

    问题已结束 答案已接受 替换为Delphi 7 访问冲突 TByteDynArray 问题 https stackoverflow com questions 3157732 delphi 7 access violation tbyted
  • 删除一个单词及其后面的所有内容

    假设我有一个字符串 C Program Files x86 Steam steam exe lets go 342131 some random text 我想从该字符串中删除 steam exe 以及之后的所有内容 所以我修剪过的字符串看
  • 如何使用 Square OKHTTP 固定证书?

    我想我需要创建一个新的 SSL 套接字工厂 另外 我不想使用全局 SSL 上下文 https github com square okhttp issues 184 https github com square okhttp issues
  • 从上三角初始化对称 Theano dmatrix

    我正在尝试拟合一个部分由对称矩阵参数化的 Theano 模型A 为了加强对称性A 我希望能够构建A通过仅传入上三角形中的值 等效的 numpy 代码可能如下所示 import numpy as np def make symmetric p
  • 当我尝试安装 Angular 时权限被拒绝

    Error EACCES permission denied access Users gs npm global lib node modules angular cli npm ERR errno 13 npm ERR code EAC
  • 卸载现有版本的 apk(如果存在),然后重新安装

    我在使用模拟器时遇到即时运行问题 我按照目录删除它 slice 8 但它仍然是相同的错误消息 我有什么想法可以解决它吗 禁用 取消选中 即时运行settings gt build execution deployment gt Instan
  • iOS DeviceCheck API -GenerateToken 给出错误代码 0

    我正在尝试实现新的 iOS 11 DeviceCheck API https developer apple com documentation devicecheck https developer apple com documenta
  • 在 Mac OS X 中创建虚拟 USB 设备

    我尝试以编程方式在 Mac OS 中添加带有驱动程序的虚拟 USB 设备 IOKit 文档说 传统上 虚拟设备的驱动程序在 IOResources 上匹配 因为虚拟设备不发布自己的 nub 此类驱动程序的另一个示例是 HelloIOKit
  • R 中另一个变量的滚动总和

    我想通过 ID 获取 7 天的滚动总和 假设我的数据如下所示 data lt as data frame matrix NA 42 3 data V1 lt seq as Date 2014 05 01 as Date 2014 09 01
  • CakePHP 3.0:如何在重复键更新时进行插入?

    我有一个数组 articles像这样 int 0 gt id gt 940039 xe dsca gt P2768G 1 xe citg gt 1F0200 xe cuni gt stk xe seak gt P2768G 1 xe sea
  • 使用 Node js 和 Express 提供 pdf 文件

    所有的PDF文件都保存在服务器的文件系统中 如何使文件可以在客户端下载 对于前 app use pdfDownload function req res var pathToTheFile req body fileName readFil
  • 使用 YUIcompressor 压缩多个 JavaScript 文件?

    我正在尝试使用 YUI 压缩机压缩多个 JS 文件 我认为我的语法错误 我想压缩目录中以以下内容开头的所有文件at 然而 当 YUI 压缩机运行时 我发现 YUI 压缩机在输出中只放置了一个文件的压缩版本 具体来说 假设我有三个文件 at
  • UIButton 在 iOS 7 中无法正常工作

    我有一个 UIButton 问题 它在 iOS6 中工作得很好 但在 iOS7 中无法响应触摸事件 为了澄清 请参见下图 失败的按钮是 UIView 中的 Discard All 按钮 请注意 此按钮只是暂时禁用 这不是问题 我只是没有启用
  • sync.WaitGroup 的示例正确吗?

    这个例子的用法是sync WaitGroup正确的 它给出了预期的结果 但我不确定wg Add 4 和位置wg Done 一次添加四个 goroutine 是否有意义wg Add http play golang org p ecvYHii
  • Python 在 macOS 上“DPI-1047 无法找到 dlopen(libclntsh.dylib)”

    我收到以下错误 cx Oracle DatabaseError DPI 1047 64 bit Oracle Client library cannot be loaded dlopen libclntsh dylib 1 image no