Django+Tastypie导入ModelResource时遇GDAL依赖OSError求助
解决libgdal.dylib找不到_curl_multi_poll符号的问题
这个错误本质是GDAL编译依赖的curl版本,和系统当前加载的curl版本不兼容——_curl_multi_poll是较新的curl函数,系统自带的curl版本大概率没实现它,但GDAL编译时用的是包含该函数的新版本curl。以下是几种可行的解决方法:
重新安装GDAL并绑定正确的curl库
如果你用Homebrew管理依赖,先更新curl再重新编译GDAL:brew install curl brew reinstall gdal --with-curl=$(brew --prefix curl)如果是用pip安装的GDAL,先卸载后指定curl路径重新安装:
pip uninstall gdal export CURL_INCLUDE_DIR=$(brew --prefix curl)/include export CURL_LIBRARY=$(brew --prefix curl)/lib/libcurl.dylib pip install gdal调整环境变量优先加载正确的curl库
临时在终端设置环境变量,让系统优先使用Homebrew安装的curl:export DYLD_LIBRARY_PATH=$(brew --prefix curl)/lib:$DYLD_LIBRARY_PATH要永久生效,把上述命令添加到你的shell配置文件(如
~/.zshrc或~/.bash_profile),然后执行source ~/.zshrc(对应你的shell类型)使配置生效。检查虚拟环境依赖
如果你使用了虚拟环境,可能是虚拟环境继承了系统旧的库路径。进入虚拟环境后,按照第一个方法重新安装GDAL,确保虚拟环境内的GDAL绑定的是正确的curl版本。
内容的提问来源于stack exchange,提问作者Nima Ganji
相关产品推荐
相关产品推荐

