M1芯片Mac搭建Django项目运行migrate报错找不到GDAL库如何解决
解决方案
方案1:优先升级Django版本适配高版本GDAL
旧版本Django确实不支持GDAL 3.3.x系列,目前官方维护的Django版本(3.2 LTS及以上)已经完全兼容GDAL 3.3.x,直接在虚拟环境执行升级命令即可:pip install --upgrade django
升级完成后先尝试执行python manage.py migrate验证是否正常。如果依然报找不到GDAL库的错误,在项目settings.py末尾添加GDAL路径配置:
# M1芯片Mac通过Homebrew安装的GDAL默认路径,版本号对应你安装的3.3.1_3 GDAL_LIBRARY_PATH = '/opt/homebrew/Cellar/gdal/3.3.1_3/lib/libgdal.dylib' # 可选配置,避免后续出现GEOS库找不到的报错 GEOS_LIBRARY_PATH = '/opt/homebrew/Cellar/geos/对应geos版本号/lib/libgeos_c.dylib'
方案2:使用conda安装指定版本GDAL
如果你不想升级现有Django版本,可以弃用Homebrew安装GDAL,改用支持ARM架构的miniforge安装指定版本的GDAL:
- 卸载现有Homebrew安装的GDAL:
brew uninstall gdal - 安装miniforge后创建对应Python版本的虚拟环境,执行命令安装指定版本GDAL:
conda install gdal=3.1.0
conda会自动处理依赖和环境变量配置,安装完成后不需要额外在settings里指定库路径,直接运行项目即可。
方案3:手动编译指定版本GDAL
如果不想使用conda,也可以手动编译你需要的GDAL版本:
- 下载GDAL 3.1.0源码包解压
- 进入源码目录依次执行编译命令:
./configure --prefix=/usr/local/gdal310 make -j8 sudo make install
- 编译完成后在settings.py里指定对应的库路径即可:
GDAL_LIBRARY_PATH = '/usr/local/gdal310/lib/libgdal.dylib'
内容的提问来源于stack exchange,提问作者Dariun
相关产品推荐
相关产品推荐

