无法从sklearn.externals.joblib导入Sklearn。

7
我是一个初学者,刚开始学习机器学习。我正在尝试从sklearn导入像imputer这样的类,但我无法做到。
from sklearn.preprocessing import Imputer,LabelEncoder,OneHotEncoder,StandardScaler

导入错误: 无法从'sklearn.externals.joblib'中导入名称为'version'的模块 (C:\ProgramData\Anaconda3\lib\site-packages\sklearn\externals\joblib__init__.py)。

第一个想法是检查sklearn和joblib是否都已安装并更新到最新版本。尝试运行 python -m pip install sklearn --upgradepython -m pip install joblib --upgrade。您能提供完整的错误报告吗? - Ashargin
5个回答

15

我遇到了同样的问题。

我已经将

from sklearn.externals import joblib

替换为

import joblib

在Python 3.7.2中可以正常工作。


1
它对我也起作用了。可以告诉我背后的原因吗? - BetterLateThanNever

6

我相信Scikit-learn有一个更新,使得该导入无法使用。

我本地安装的版本是0.20.3,这个导入工作得很好。但是在我的服务器上,我安装的是0.23.1,这个错误就冒了出来。新版本中一定有一些改动。

对于我的情况,使用import joblib解决了问题。在你的情况下,似乎更加复杂。如果你的系统安装了多个Scikit-learn版本,那么很可能会引起这个问题。你需要卸载所有版本并进行清洁安装sklearn。


0
问题有时可能是由于版本原因导致的。以下内容可能会有所帮助: 如果你的编写方式像这样。
from sklearn.externals import joblib

将其修改为:

import joblib

-1
import joblib

这对我有用。实际上,我也遇到了那种挑战。


-1

尝试运行以下命令:

python -m pip install sklearn --upgrade python -m pip install joblib --upgrade

然后,使用以下代码:

import joblib

祝你好运。


我已经尝试了您的方法,我的Python版本是3.8,scikit-learn版本是0.23.2,但是您的命令无法运行。 - Sybghatallah Marwat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接