用Python,在 import sklearn 总是报错怎么办

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Python,在 import sklearn 总是报错怎么办相关的知识,希望对你有一定的参考价值。

首先,检查一下有没有安装sklearn这个包,如果有,那么再检查有没有安装numpy,scipy。
如果都安装了还是报错,可以把C:\Python27\Lib\site-packages里面的这三个包删掉,然后去http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn下载你系统对应的版本,下载完解压直接copy到同一个文件夹(site-packages)里就可以了。
参考技术A 你是不是没按sklearn这个包

在R中使用带有网格包的Python - 找不到Numpy

我开始使用reticulate包,它允许在R环境中使用Python,并希望使用sklearn执行均值移位聚类。所以这是我的尝试:

> library(reticulate)
> np <- import('numpy')
> sklearn <- import('sklearn')
> sklearn.MeanShift <- sklearn$cluster$MeanShift
> x <- matrix(rnorm(20), 10, 2)
> sklearn.MeanShift(x)
Error in py_call_impl(callable, dots$args, dots$keywords) : 
  Evaluation error: Required version of NumPy not available: installation of Numpy >= 1.6 not found.

正如你所看到的那样,numpy在调用sklearn函数时没有找到,而reticulate::import导入时没有问题。我还检查了我在conda提示符中的numpy版本,它是1.15.4。 py_numpy_available()也会返回false。我的reticulate配置是:

python:         C:UsersjakesANACON~1python.exe
libpython:      C:/Users/jakes/ANACON~1/python37.dll
pythonhome:     C:UsersjakesANACON~1
version:        3.7.1 (default, Oct 28 2018, 08:39:03) [MSC v.1912 64 bit (AMD64)]
Architecture:   64bit
numpy:           [NOT FOUND]
scikit-learn:   [NOT FOUND]

python versions found: 
 C:UsersjakesANACON~1python.exe
 C:UsersjakesAnaconda3python.exe

我该如何解决这个问题?

答案

有关更多信息,请查看this thread

尝试使用R对象作为参数从python脚本调用函数时,我遇到了同样的错误。显然这是因为Python没有被添加到你的PATH(这是在Anaconda安装期间提出的建议),这可以防止网格在初始化python时发现numpy。在用网格初始化之前将python添加到R中的PATH是解决了我的问题的原因。所以从前面提到的线程:

if(.Platform$OS.type == "windows") Sys.setenv(PATH= paste("C:/Anaconda3/Library/bin",Sys.getenv()["PATH"],sep=";"))
library(reticulate)

以上是关于用Python,在 import sklearn 总是报错怎么办的主要内容,如果未能解决你的问题,请参考以下文章

python import sklearn包出错 ImportError: No module named nose.tools

python报错:cannot import name ‘joblib‘ from ‘sklearn.externals‘

python warnings.filterwarnings不会忽略'import sklearn.ensemble'中的DeprecationWarning

Python import 模块导入问题

在R中使用带有网格包的Python - 找不到Numpy

在 sklearn 集成方法中解释 feature_importances_