You need to enable JavaScript to run this app. M1(Apple Silicon/Darwin-arm64)下如何安装导入Scipy、Numpy、NumExpr等库
优惠活动
大模型
产品
解决方案
定价
更多

M1(Apple Silicon/Darwin-arm64)下如何安装导入Scipy、Numpy、NumExpr等库

Apple Silicon(M系列芯片)原生Python数据科学包安装实操

环境前置校验

  • 先确认当前Python运行在原生arm64架构下,验证命令为python -c "import platform; print(platform.machine())",输出结果为arm64即为正确环境;如果输出x86_64,说明当前Python走了Rosetta转译路线,先调整终端和Python的架构设置再继续,否则后续所有安装操作都大概率报错
  • 提前升级pip到最新版本,旧版本pip无法正确识别arm64架构的PyPI包索引,升级命令:python -m pip install --upgrade pip

官方预编译包直装(优先推荐,无需手动编译)

  • 从Python 3.9版本开始,numpy、scipy、numexpr等主流数据科学包已经在PyPI官方源提供正式的原生arm64预编译二进制,不需要依赖第三方渠道,直接执行以下命令即可完成安装:
    • python -m pip install numpy scipy numexpr pandas matplotlib
  • 安装过程中不要随意加--no-binary、--build类的强制编译参数,pip会自动匹配对应架构的预编译包,安装速度比本地编译快90%以上,也不会出现编译依赖缺失的报错

无预编译包时的本地编译流程

  • 碰到个别早期版本未提供官方arm64预编译包的场景,再走手动编译流程:
    • 先通过Mac包管理器(如Homebrew)安装编译必须的底层依赖:brew install openblas gfortran gcc,缺少这三个依赖时,numpy、scipy的编译一定会失败
    • 执行编译前设置架构编译参数,强制生成arm64架构的二进制:export ARCHFLAGS="-arch arm64"
    • 针对单个包执行编译安装,比如需要本地编译numexpr时,命令为:python -m pip install --no-binary=numexpr numexpr

配置pip优先使用本地编译包的方法

  • 实际使用中常碰到的“pip绕过本地编译包、强行从PyPI拉取源码导致安装失败”的问题,可以通过以下几种方式解决:
    • 直装本地编译好的whl文件:编译完成后直接执行pip install <本地whl文件的完整路径>,pip检测到本地已安装对应版本的兼容包时,不会重复触发PyPI的源码拉取流程
    • 指定本地包搜索路径:安装时加上--find-links <本地whl文件存放目录>参数,pip会优先在指定的本地目录下匹配对应包的预编译/本地编译版本,匹配不到才会从PyPI拉取资源
    • 完全跳过PyPI源:需要强制使用本地包时,加上--no-index参数,pip会完全忽略公共PyPI源,只从指定的本地/自定义渠道搜索安装包,从根源避免拉取不兼容的源码包

常见踩坑提醒

  • 不要混用Rosetta转译终端、x86架构Python环境和原生arm64包,一旦出现架构不匹配,会直接触发导入失败、编译报错的问题
  • 安装完成后执行一次依赖一致性检查:python -m pip check,如果提示存在版本/架构不匹配的残留包,直接卸载对应包,重新安装原生arm64版本即可
  • 不要在安装初期就全局开启pip的--no-cache-dir选项,合理的缓存能帮pip快速识别架构匹配的预编译包,减少错配概率

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 16:24:04