Python DB2-找不到符号

问题描述

更新到Mac Catalina(版本10.15.6)之后,我不得不重新安装Python和所有相关模块。 我现在的问题是,当添加模块ibm_db时,尝试运行程序时出现以下错误消息:

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/ibm_db.cpython-37m-darwin.so,2): Symbol not found: ___cxa_throw_bad_array_new_length
  Referenced from: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/clidriver/lib/libdb2.dylib
  Expected in: /usr/lib/libstdc++.6.dylib
 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/clidriver/lib/libdb2.dylib

我正在使用PyCharm 2018.3.7(CE)。

任何人看到了这个,并对此有一个解决办法?

解决方法

问题是由于系统中安装了旧版本的/usr/lib/libstdc++.6.dylib所致。新安装的ibm_db正在寻找libstdc ++。6.dylib的较新版本。

有两种快速解决方案。您可以使用以下任何一种:

  1. 在系统中安装版本大于等于8的新gcc,并设置环境变量以使用它,以便应该从新版本的gcc中获取libstdc ++。6.dylib,而不是现有的旧版本。

OR

  1. 导出DYLD_LIBRARY_PATH = / Library / Frameworks / Python.framework / Versions / 3.7 / lib / python3.7 / site-packages / clidriver / lib

谢谢。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...