Windows 10下安装spaCy失败求助:Python3.6.5编译murmurhash.mrmr报错
解决Python 3.6.5安装spaCy时murmurhash扩展编译报错的问题
嘿,我看你在Windows环境下用Python 3.6.5安装spaCy(通过en_core_web_sm模型包间接触发)时,碰到了murmurhash扩展编译失败的问题——这种情况在Windows上真的很常见,要么是缺了编译C扩展的工具链,要么是pip版本太旧导致的。先把你执行的命令和部分输出整理出来:
C:\Users\muthu>pip install C:\Users\muthu\Downloads\Installers\en_core_web_sm-2.0.0.tar.gz --no-cache-dir Processing c:\users\muthu\downloads\installers\en_core_web_sm-2.0.0.tar.gz Collecting spacy>=2.0.0a18 (from en-core-web-sm==2.0.0) Downloading spacy-2.0.11.tar.gz (17.6MB) 100% |████████████████████████████████| 17.6MB 1.2MB/s Requirement...
下面给你几个经过验证的解决办法,按优先级排序:
1. 补全Windows编译工具链(最根本的解决方式)
Windows默认没有编译Python C扩展的环境,你需要安装微软的Visual C++ Build Tools 2017(刚好匹配Python 3.6的版本):
- 下载安装包后,选择「Visual C++ build tools」组件,务必勾选「Windows 10 SDK」和「MSVC v141 build tools」这两个选项
- 安装完成后重启命令提示符,再重新运行你的安装命令即可。
2. 用预编译wheel包跳过编译(最省心的方式)
直接用官方提供的预编译wheel包,完全不用自己折腾编译:
- 先把pip升级到最新版本,确保它能正确识别wheel格式:
python -m pip install --upgrade pip - 下载对应Python 3.6的spaCy 2.0.11 wheel包(64位系统选
win_amd64,32位选win32),然后安装:pip install spacy-2.0.11-cp36-cp36m-win_amd64.whl - 最后再安装你的模型包:
pip install C:\Users\muthu\Downloads\Installers\en_core_web_sm-2.0.0.tar.gz --no-cache-dir
3. 用Conda安装(避开所有编译问题)
如果你已经装了Anaconda/Miniconda,用conda安装会自动处理所有依赖,完全不用管编译的事:
- 先添加conda-forge频道(spaCy的官方推荐源):
conda config --add channels conda-forge - 安装指定版本的spaCy和模型:
conda install spacy=2.0.11 python -m spacy download en_core_web_sm==2.0.0
补充小技巧
如果上面的方法都不行,可以试试先单独安装兼容性更好的murmurhash版本,再装spaCy:
pip install murmurhash==0.28.0
然后再执行你的模型安装命令,这个版本的murmurhash对旧版Python的兼容性更强。
内容的提问来源于stack exchange,提问作者Dilip Muthukurussimana
相关产品推荐
相关产品推荐

