pip安装sklearn触发OSError [Errno 2]找不到文件或目录的问题咨询
安装scikit-learn时出现OSError的原因与解决方法
错误产生原因
你输入的sklearn就是官方包名scikit-learn,本次报错的路径指向微软商店分发的Python 3.7的本地缓存包目录,找不到指定测试数据文件的核心原因有三类:
- 此前有scikit-learn的未完成安装/卸载残留,site-packages目录下的sklearn文件夹存在残缺,pip执行覆盖安装时读写对应测试数据文件失败
- 安装过程中,杀毒软件、系统清理工具拦截/删除了scikit-learn安装包内的测试数据临时文件,或是微软商店版Python的沙箱权限限制了文件写入
- Python 3.7已停止官方维护,当前多数新版scikit-learn安装包不再适配3.7,容易触发文件路径读取异常
可行解决方法(按优先级排序)
方法1:清理残留后重装兼容版本
先卸载现有残缺的scikit-learn,清理残留目录后再安装适配Python 3.7的版本:
- 执行卸载命令:
pip uninstall scikit-learn -y - 手动打开报错提示中的site-packages路径,找到所有sklearn、scikit-learn开头的文件夹,全部手动删除
- 重新执行安装命令:
pip install scikit-learn==1.0.2(该版本是最后一个支持Python 3.7的scikit-learn稳定版)
方法2:绕过测试文件校验安装
如果上述方法仍触发文件缺失报错,可以加参数跳过安装校验:
pip install scikit-learn==1.0.2 --no-cache-dir --no-build-isolation
补充说明:报错中找不到的文件是scikit-learn开发阶段的测试用数据,普通业务场景下不会用到,跳过校验不会影响核心功能使用
方法3:更换无沙箱限制的Python发行版
微软商店版Python自带沙箱权限限制,频繁出现文件读写异常,可更换为官网发行版Python解决:
- 卸载当前微软商店安装的Python 3.7
- 安装官网版Python时,勾选「Add Python to PATH」选项,安装完成后用管理员身份运行终端,再执行pip安装命令
方法4:临时关闭安全工具实时防护
安装前暂时关闭第三方杀毒软件、系统优化工具的实时扫描功能,避免安装包内的测试文件被误判为风险文件删除,安装完成后再重新开启防护。
内容的提问来源于stack exchange,提问作者J__1
相关产品推荐
相关产品推荐

