You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在M1 Max设备上安装GDAL x86_64版本的问题求助

Django迁移时GDAL架构不兼容问题解决

问题重现

执行python manage.py migrate时触发架构不兼容错误:

OSError: dlopen(/Users/name/lib/libgdal.dylib, 0x0006): tried:
'/Users/name/lib/libgdal.dylib' (mach-o file, but is an incompatible
architecture (have 'arm64', need 'x86_64'))....

已尝试切换终端架构至i386后安装GDAL,但问题仍存在。当前settings.py配置:

GDAL_LIBRARY_PATH = '/opt/homebrew/opt/gdal/lib/libgdal.dylib'
GEOS_LIBRARY_PATH = '/opt/homebrew/opt/geos/lib/libgeos_c.dylib'

核心原因

Apple Silicon Mac上,/opt/homebrew是arm64架构Homebrew的默认路径,你切换终端到x86_64后安装的GDAL实际存放在/usr/local目录,但settings.py仍指向arm64版本的库;同时你的Python环境可能还是arm64架构,和x86_64的GDAL无法匹配。

解决步骤

  • 检查Python环境架构
    在当前终端执行:

    python -c "import platform; print(platform.machine())"
    

    如果输出是arm64,说明你用的还是arm64版本的Python,需要切换到x86_64版本的Python环境。

  • 通过Rosetta安装x86_64版本的Homebrew和GDAL

    1. 打开Rosetta终端:右键终端→显示简介→勾选「使用Rosetta打开」,重新启动终端。
    2. 安装x86架构的Homebrew:
      /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
      
      该版本Homebrew默认安装在/usr/local目录。
    3. 安装x86版本的GDAL和GEOS:
      brew install gdal geos
      
  • 更新settings.py中的库路径
    修改为x86架构对应的路径:

    GDAL_LIBRARY_PATH = '/usr/local/opt/gdal/lib/libgdal.dylib'
    GEOS_LIBRARY_PATH = '/usr/local/opt/geos/lib/libgeos_c.dylib'
    
  • 使用匹配的Python环境运行项目
    在Rosetta终端中,创建新的虚拟环境(避免继承之前arm64环境的依赖),安装项目所需依赖后,重新执行:

    python manage.py migrate
    

内容的提问来源于stack exchange,提问作者SCH361

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 06:21:37