字节笔记本

2026年2月22日

Conda 在 Apple Silicon Mac 上创建 Python 3.7 环境失败解决方案

本文记录一个关于在 Apple Silicon Mac (M1/M2/M3) 上使用 Conda 创建 Python 3.7 环境的问题及解决方案。该 Issue 来自 Conda 官方仓库,获得了大量开发者关注(👍 167)。

问题描述

在 Apple Silicon Mac 上使用 Miniconda3 创建 Python 3.7 环境时失败:

bash
conda create -n myenv python=3.7

或使用 conda-forge 通道:

bash
conda create -n myenvenv -c conda-forge python=3.7

两个命令都报同样的错误:

text
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: failed

PackagesNotFoundError: The following packages are not available from current channels:
  - python=3.7

Current channels:
  - https://repo.anaconda.com/pkgs/main/osx-arm64
  - https://repo.anaconda.com/pkgs/main/noarch
  - https://repo.anaconda.com/pkgs/r/osx-arm64
  - https://repo.anaconda.com/pkgs/r/noarch
  - https://conda.anaconda.org/conda-forge/osx-arm64
  - https://conda.anaconda.org/conda-forge/noarch

根本原因

Python 3.7 发布于 2018 年,而 Apple Silicon Mac (ARM 架构) 于 2020 年底才推出。因此,没有为 Apple Silicon 原生编译的 Python 3.7 版本

Python 3.9.1 是第一个原生支持 ARM Mac 的版本。

解决方案

通过 Rosetta 模拟 x86_64 架构来运行 Python 3.7:

bash
# 创建空环境
conda create -n py37

# 激活环境
conda activate py37

# 设置使用 x86_64 架构的通道
conda config --env --set subdir osx-64

# 安装 Python 3.7 及其他包
conda install python=3.7

注意事项

  1. 性能影响:使用 Rosetta 模拟 x86_64 架构会有一定的性能损耗
  2. 兼容性问题:某些用户报告遇到 zsh: bad CPU type in executable: pythonzsh: illegal hardware instruction 错误
  3. 版本建议:如果可能,建议升级到 Python 3.9+ 以获得原生 ARM 支持

讨论要点

社区讨论中提到了几个关键点:

  • 一些用户确认该解决方案在 M1 MacBook 上有效
  • 部分用户遇到 CPU 架构不匹配的错误
  • 对于必须使用 Python 3.7 的场景(如依赖旧版 TensorFlow),这是唯一的解决方案

参考链接

分享: