Apple M1/M2芯片安装无ARM构建Conda包(如pybox2d)的方法咨询
问题背景
在Anaconda官网能查到pybox2d包,但在搭载Apple M1/M2芯片的MacBook上执行conda search pybox2d -c conda-forge时找不到该包,报错如下:
conda search pybox2d -c conda-forge
Loading channels: done
No match found for: pybox2d. Search: pybox2dPackagesNotFoundError: The following packages are not available from current channels:
- pybox2d
Current channels:
- https://conda.anaconda.org/conda-forge/osx-arm64
- https://conda.anaconda.org/conda-forge/noarch
- 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
To search for alternate channels that may provide the conda package you're
looking for, navigate tohttps://anaconda.organd use the search bar at the top of the page.
该问题同样适用于其他无ARM架构构建版本的Conda包。
可行解决方法
1. 借助Rosetta 2创建x86_64架构Conda环境
Apple M系列芯片支持通过Rosetta 2模拟x86_64环境,步骤如下:
- 打开终端,右键点击终端图标选择「复制」,右键点击复制后的终端,选择「显示简介」,勾选「使用Rosetta打开」
- 打开这个Rosetta终端,创建指定x86_64架构的Conda环境:
conda create -n pybox2d_x86 python=3.9 - 激活环境后安装pybox2d:
conda activate pybox2d_x86 conda install -c conda-forge pybox2d
此方法利用x86_64预编译包,无需源码构建,操作简单。
2. 从源码构建安装
若不想用Rosetta模拟环境,可尝试源码编译:
- 先安装编译依赖:
conda install -c conda-forge cmake make gcc - 克隆pybox2d源码仓库:
git clone https://github.com/pybox2d/pybox2d.git cd pybox2d - 执行源码安装:
python setup.py install
注意:源码构建可能需要解决依赖兼容问题,耗时较长。
3. 改用pip安装
若该包有适配ARM架构的PyPI版本,可直接用pip安装:
- 激活目标Conda环境后执行:
pip install pybox2d
此方式绕过Conda的架构限制,直接使用PyPI提供的包。
内容的提问来源于stack exchange,提问作者Neil Traft

