MacOS系统中GridDB Python客户端无法正常运行问题求助
GridDB Python客户端导入错误:_iconv符号找不到
问题背景
- 安装方式:通过发布文件安装GridDB Python客户端,版本为
griddb_python-0.8.5-cp310-cp310-macosx_10_15_x86_64.whl - 运行环境:MacOS Monterey v12.6,Python 3.10.8,C客户端为本地源码编译构建
- 执行示例脚本时触发导入错误,执行命令及报错信息如下:
$ python3 sample.py 239.0.0.1 31999 myCluster admin admin Traceback (most recent call last): File "/private/tmp/sample.py", line 3, in <module> import griddb_python as griddb File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/griddb_python.py", line 21, in <module> import _griddb_python ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/_griddb_python.cpython-310-darwin.so, 0x0002): symbol not found in flat namespace (_iconv)
解决方案
这个错误源于预编译的Python客户端未正确链接系统iconv库,可尝试以下解决步骤:
- 重新编译GridDB C客户端:在configure阶段添加
--with-iconv=/usr/lib参数,再执行make && make install,确保C客户端正确关联iconv库 - 从源码构建安装Python客户端:克隆GridDB Python客户端源码,执行
pip install .进行本地构建,让编译过程自动关联本地已编译的C客户端和系统依赖 - 配置动态链接器路径:执行
export DYLD_LIBRARY_PATH=/usr/local/lib:$DYLD_LIBRARY_PATH(若C客户端安装在其他路径,替换对应目录),再运行示例脚本
内容的提问来源于stack exchange,提问作者Arqish Mithani
相关产品推荐
相关产品推荐

