cannot import name 'joblib' from 'sklearn.externals'
时间: 2023-05-01 08:00:12 浏览: 86
这个错误的意思是,在你的代码中无法从 sklearn.externals 模块中导入 joblib 名称。这可能是因为 joblib 已经从 sklearn.externals 中移除,或者你使用的 sklearn 版本过老,不包含这个模块。建议更新 sklearn 库的版本或者在代码中更换导入方式。
相关问题
ImportError: cannot import name 'joblib' from 'sklearn.externals
### 解决方案
对于`ImportError: cannot import name 'joblib' from 'sklearn.externals'`这一错误,主要原因是较高版本的scikit-learn库已不再支持通过`sklearn.externals`来导入joblib[^1]。具体来说,在版本0.22之后的scikit_learn中就已经移除了joblib的支持[^5]。
为了有效解决问题,建议采取如下措施:
#### 方法一:直接安装并导入joblib
由于joblib已经被独立出来作为一个单独的包,因此可以直接通过pip命令安装它:
```bash
pip install joblib
```
随后可以在代码里直接使用`import joblib`语句来进行导入操作而无需经过`sklearn.externals`路径[^3]。
#### 方法二:调整依赖项至兼容版本
如果项目严格依赖于旧版scikit-learn中的joblib位置,则可以选择回滚到较低版本的scikit-learn(如v0.21.x),从而保持原有的导入方式不变。不过这种方法可能会带来其他兼容性风险,需谨慎评估后再做决定[^4]。
#### 示例代码修正前后的对比
原始报错代码片段可能类似于这样:
```python
from sklearn.externals import joblib # 错误写法,会引发ImportError
```
修改后推荐的做法为:
```python
import joblib # 正确做法,适用于最新版本的Scikit-Learn
```
但是报错cannot import name 'joblib' from 'sklearn.externals
### 回答1:
这个错误的意思是你在尝试从sklearn.externals中导入joblib,但是却找不到这个名字。
这可能是因为你使用的sklearn版本过旧,joblib在更新的版本中已经不再是sklearn.externals的一部分了。建议你升级sklearn版本,或者直接在代码中导入joblib,不再从sklearn.externals中导入。
### 回答2:
该报错信息意味着在sklearn.externals模块中无法导入名为'joblib'的内容。在最新的scikit-learn版本中,将一些旧版本的模块从sklearn.externals模块移动到了新的位置。而'joblib'模块已经从sklearn.externals模块移动到了sklearn模块下。因此,如果你使用的是新版本的scikit-learn库,你需要使用以下方式导入'joblib'模块:
```python
from sklearn import joblib
```
这样可以确保你能正确地导入'joblib'模块,并使用其中的函数和类。如果你仍然遇到报错问题,可能是由于你使用的是较旧版本的scikit-learn库。在这种情况下,你可以尝试升级scikit-learn库到最新版本,或者通过安装joblib库来解决该问题。你可以使用以下命令来安装joblib库:
```
pip install joblib
```
安装完成后,你应该能够顺利地导入并使用'joblib'模块。希望以上回答能够帮助你解决问题。
### 回答3:
在Scikit-learn版本0.23及之后的版本中,从sklearn.externals包中无法导入'joblib'。此报错是由于Sklearn对sklearn.externals进行了重构,将一些函数和类移动到了不同的位置。joblib现在已经转移到了sklearn包下的external子包中,因此我们应该使用sklearn.external.joblib来导入joblib。
正确的导入方式为:
from sklearn.externals import joblib
如果你在使用较新版本的Scikit-learn(0.23及之后),不能使用上述方法导入joblib,可以尝试更新你的Scikit-learn安装版本,或者使用以下新的导入方式:
from sklearn import external
external.joblib
通过以上方法,你应该能够成功导入joblib,并继续使用它进行模型的保存和加载等操作。
阅读全文
相关推荐














