GDAL升级后无法加载问题求助(Mac M2 Pro环境)
GDAL 3.7.1_1升级后Mac M2 Pro上符号缺失错误的解决办法
问题详情
使用Mac M2 Pro芯片,通过Homebrew安装GDAL及其依赖组件。将GDAL从3.6.4_6升级到3.7.1_1后,所有依赖GDAL的Django 3项目(使用django.contrib.gis.db.backends.postgis数据库引擎)运行命令时都会抛出如下异常:
File "~/.pyenv/versions/3.8.9/lib/python3.8/ctypes/__init__.py", line 373, in __init__ self._handle = _dlopen(self._name, mode) OSError: dlopen(/usr/local/lib/libgdal.dylib, 0x0006): Symbol not found: __ZN3Aws6Client19ClientConfigurationC1Ev Referenced from: <FA8C3295-2793-3C69-A419-16C41753696B> /opt/homebrew/Cellar/apache-arrow/12.0.1_4/lib/libarrow.1200.1.0.dylib Expected in: <BDB1F1E3-0BE9-3D7D-A57E-9D9F8CAD197A> /opt/homebrew/Cellar/aws-sdk-cpp/1.11.145/lib/libaws-cpp-sdk-core.dylib
该问题可在全新Python环境中复现,仅执行以下代码即可触发错误:
from ctypes import CDLL; CDLL("/usr/local/lib/libgdal.dylib")
尝试过重新安装GDAL、更换Python版本,均无法解决问题。
解决方案
该兼容性问题已由Homebrew官方修复,只需执行以下命令更新Homebrew并升级所有相关包:
brew update && brew upgrade
问题背景
此错误源于GDAL依赖的apache-arrow与aws-sdk-cpp版本不兼容,导致符号查找失败。对应的问题工单已提交,修复PR于2023年8月22日合并到Homebrew仓库。
内容的提问来源于stack exchange,提问作者Florentin Le Moal
相关产品推荐
相关产品推荐

