Apple M1芯片Mac虚拟环境安装spaCy V3.2.1失败求助
问题:M1 MacBook Air(macOS Ventura 13.0)虚拟环境安装spaCy 3.2.1失败
执行的操作步骤
在搭载Apple M1处理器、运行macOS Ventura 13.0的MacBook Air虚拟环境中,参考官方文档执行以下命令安装spaCy 3.2.1:
# 创建并激活虚拟环境 python -m venv venv source venv/bin/activate # 升级pip到最新版本 python -m pip install --upgrade pip # 安装spaCy及依赖 pip install setuptools wheel pip install -U 'spacy[apple]'==3.2.1 python -m spacy download en_core_web_sm
遇到的错误
执行后出现编译错误:
1 error generated. error: command '/usr/bin/clang' failed with exit code 1 ---------------------------------------- ERROR: Failed building wheel for spacy Failed to build spacy ERROR: Could not build wheels for spacy which use PEP 517 and cannot be installed directly
注:执行pip install -U 'spacy[apple]'可成功安装最新版spaCy 3.4.3,但需求为3.2.1版本,优先通过pip安装,也接受其他能在venv中正常导入Python脚本的安装方式。
解决方案
方案1:拆分安装适配M1的依赖与spaCy
spaCy 3.2.1的[apple] extras在M1上可能存在编译适配问题,尝试拆分安装步骤:
# 激活虚拟环境后执行 pip install --upgrade pip setuptools wheel # 安装适配M1的PyTorch基础依赖 pip install torch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cpu # 安装指定版本spaCy pip install spacy==3.2.1 # 手动安装Apple Silicon优化的thinc组件 pip install thinc-apple-ops==0.1.5 # 下载语言模型 python -m spacy download en_core_web_sm
方案2:指定编译参数后安装
通过设置环境变量指定clang编译参数适配M1架构:
# 激活虚拟环境后执行 export CFLAGS="-arch arm64 -stdlib=libc++" export CXXFLAGS="-arch arm64 -stdlib=libc++" pip install --upgrade pip setuptools wheel pip install spacy==3.2.1 pip install thinc-apple-ops==0.1.5 python -m spacy download en_core_web_sm
方案3:使用conda安装(若允许切换虚拟环境类型)
conda的预编译包对M1兼容性更好,可尝试conda环境安装:
# 创建并激活conda虚拟环境 conda create -n spacy321 python=3.9 conda activate spacy321 # 安装指定版本spaCy conda install -c conda-forge spacy==3.2.1 # 安装Apple Silicon优化组件 pip install thinc-apple-ops==0.1.5 # 下载语言模型 python -m spacy download en_core_web_sm
内容的提问来源于stack exchange,提问作者David Espinosa
相关产品推荐
相关产品推荐

