You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MacBook Air M1运行Python脚本时遭遇numpy架构不兼容问题求助

解决M1 MacBook Air上numpy架构不兼容的问题

问题描述

我在MacBook Air M1上运行Python脚本时遇到了numpy架构不兼容的错误:
运行命令:

python3 -u "/Users/kaiyuwei/Documents/graduation project/metaheuristics/run_CRO.py"

报错核心信息:

ImportError: dlopen(/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so, 0x0002): tried: '/Users/kaiyuwei/Library/Python/3.8/lib/python/site-packages/numpy/core/_multiarray_umath.cpython-38-darwin.so' (mach-o file, but is an incompatible architecture (have 'arm64', need 'x86_64'))

我尝试过pip install numpy --upgradepython3 -m pip install --upgrade pip,但都提示依赖已满足,问题没有解决。


解决方案

我之前在M1 Mac上也碰到过完全一样的问题,本质是当前使用的Python是x86_64架构(来自Command Line Tools的版本),但numpy是适配arm64的版本,两者架构不匹配。下面是两种可行的解决办法:

方法1:安装M1原生arm64版本的Python(推荐)

这是最彻底的方案,用原生适配arm64的Python环境来避免架构冲突:

  1. 先安装Homebrew(如果还没装):
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    安装完成后记得按照终端提示,把Homebrew的路径加入环境变量(M1的Homebrew默认路径是/opt/homebrew)。
  2. 安装原生arm64的Python:
    brew install python
    
  3. 确认当前使用的是Homebrew的Python:
    which python3
    
    输出应该是/opt/homebrew/bin/python3,说明已经切换到原生arm64版本。
  4. 强制重新安装适配arm64的numpy:
    python3 -m pip install --upgrade pip
    python3 -m pip install numpy --force-reinstall
    

方法2:用Rosetta转译运行终端,重新安装x86_64版本的numpy

如果不想更换Python环境,可以通过Rosetta让终端以x86_64模式运行,然后安装对应架构的numpy:

  1. 找到「终端」应用,右键点击→「显示简介」,勾选「使用Rosetta打开」。
  2. 打开新的终端窗口,运行以下命令强制重新安装x86_64版本的numpy:
    python3 -m pip install numpy --force-reinstall
    
  3. 之后运行脚本时,记得用这个Rosetta模式的终端窗口。

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

火山引擎 最新活动