Windows10下pip安装sklearn遇EnvironmentError报错求助
解决Windows 10下pip安装scikit-learn时的文件缺失&VS编译错误
嘿,我之前在Windows 10上用Python 3.8装scikit-learn时也踩过几乎一模一样的坑,给你几个亲测有效的解决办法,咱们一步步来:
一、先搞定核心的文件缺失报错
你看到的那个找不到的.json.gz文件,是scikit-learn自带的测试用OpenML数据集缓存,根本不用手动去GitHub拖整个仓库,试试这几个更高效的方案:
方案1:强制安装预编译二进制包,跳过数据集校验
直接用这条pip命令,清空缓存+强制用wheel包(避免源码编译触发数据集检查):pip install scikit-learn --no-cache-dir --no-deps --only-binary :all:解释下:
--no-cache-dir会删掉pip之前缓存的损坏安装包,--only-binary :all:让pip直接下载预编译好的wheel文件,不会去拉源码编译,自然也就不会校验那些测试数据集了。方案2:换国内镜像源解决网络导致的下载不全
有时候是网络波动导致安装包没下完整,换清华源试试:pip install scikit-learn -i https://pypi.tuna.tsinghua.edu.cn/simple --no-cache-dir方案3:手动下载wheel包本地安装
- 去PyPI找scikit-learn的页面,下载和你Python版本、系统匹配的wheel包(比如Python3.8+Win64的话,找
scikit_learn-*cp38-win_amd64.whl格式的文件) - 打开命令行切到下载目录,运行:
pip install 你下载的文件名.whl- 去PyPI找scikit-learn的页面,下载和你Python版本、系统匹配的wheel包(比如Python3.8+Win64的话,找
二、解决源码安装时的VS错误
你用python setup.py install出VS错误,是因为scikit-learn源码编译需要完整的C++编译环境,其实没必要走源码安装(除非你要改代码),如果一定要试的话:
- 先装Microsoft Visual C++ Build Tools 2019,安装时必须勾选「C++ build tools」组件,还有和你Windows10版本匹配的Windows SDK
- 安装完后,一定要打开x64 Native Tools Command Prompt for VS 2019(这个命令行会自动配置编译环境变量),再运行:
加python setup.py install --skip-build--skip-build是跳过测试环节,避免又触发数据集相关的问题。
三、兜底的彻底清理步骤
如果上面的方法都不管用,先彻底清掉残留文件再重装:
- 卸载所有相关包:
pip uninstall -y scikit-learn scipy numpy - 删除pip缓存:打开
C:\Users\Rik\AppData\Local\pip\Cache,清空所有文件 - 删除site-packages里的残留:找到
C:\Users\Rik\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.8_qbz5n2kfra8p0\LocalCache\local-packages\Python38\site-packages,删掉所有带sklearn、scikit-learn的文件夹 - 然后再用方案1的命令重新安装
内容的提问来源于stack exchange,提问作者Chuckster




