字
字节笔记本
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注意事项
- 性能影响:使用 Rosetta 模拟 x86_64 架构会有一定的性能损耗
- 兼容性问题:某些用户报告遇到
zsh: bad CPU type in executable: python或zsh: illegal hardware instruction错误 - 版本建议:如果可能,建议升级到 Python 3.9+ 以获得原生 ARM 支持
讨论要点
社区讨论中提到了几个关键点:
- 一些用户确认该解决方案在 M1 MacBook 上有效
- 部分用户遇到 CPU 架构不匹配的错误
- 对于必须使用 Python 3.7 的场景(如依赖旧版 TensorFlow),这是唯一的解决方案
参考链接
分享: