UMAP无法在Apple M1 Pro运行,求Apple Silicon适配解决方法
Apple Silicon上UMAP运行报错的解决办法
1. 切换到原生ARM架构的Python环境
Apple Silicon用Rosetta转译的x86 Python很容易和UMAP的依赖库不兼容,先确认你的Python是ARM版本:
- 运行命令:
python3 -c "import platform; print(platform.machine())",输出得是arm64才对。 - 如果不是,直接从Python官网下载ARM64安装包,或者用Homebrew安装:
brew install python(Homebrew在M1/M2系列机型上默认安装ARM版)。
2. 彻底重装UMAP及依赖
先卸载旧的UMAP,再用原生ARM环境重新安装:
- 卸载:
pip uninstall umap-learn - 重装:
pip install umap-learn
要是安装时遇到编译错误,先装编译工具:brew install cmake llvm,再执行安装命令。
3. 确保Spyder是原生ARM版本
如果Spyder是x86转译版本,哪怕Python是ARM的也会出问题:
- 用Anaconda的话,一定要下载Apple Silicon版的Anaconda,然后新建环境安装Spyder和UMAP:
conda create -n umap_env python=3.10 conda activate umap_env conda install spyder umap-learn - 检查Spyder架构:右键图标选「显示简介」,不要勾选「使用Rosetta打开」。
4. 临时禁用AVX指令集(应急方案)
要是上面的方法都不管用,可能是UMAP依赖的库编译时用了x86的AVX指令,ARM架构不支持,那就设置环境变量禁用:
- 在Spyder的「工具」-「偏好设置」-「Python解释器」里,添加环境变量:
OMP_DISABLE_AFFINITY=1 - 或者终端启动Spyder前先输入:
OMP_DISABLE_AFFINITY=1 spyder
5. 从源码编译UMAP
预编译包有问题的话,直接从源码安装:
git clone https://github.com/lmcinnes/umap.git cd umap pip install -e .
编译时确保用的是ARM版编译器,Homebrew安装的cmake和llvm会自动适配。
内容的提问来源于stack exchange,提问作者javid
相关产品推荐
相关产品推荐

