📌  相关文章
📜  无法从“sklearn.externals”(shared-libs python3.7 py lib python3.7 site-packages sklearn externals __init__.py)导入名称“joblib” - Python (1)

📅  最后修改于: 2023-12-03 14:55:05.857000             🧑  作者: Mango

无法从“sklearn.externals”导入名称“joblib” - Python问题
问题描述

在Python中尝试导入joblib时,出现了以下错误:

无法从“sklearn.externals”(shared-libs python3.7 py lib python3.7 site-packages sklearn externals __init__.py)导入名称“joblib”
问题原因

这个问题的原因是在Scikit-learn 0.21版本中,joblib库从sklearn.externals模块中移除了,并成为一个单独的独立库。因此,在较新版本的Scikit-learn中,不能再从sklearn.externals中导入joblib

解决方案

要解决这个问题,你可以遵循以下步骤:

1. 更新Scikit-learn版本

首先,你需要确保你正在使用的Scikit-learn版本是较新的。你可以通过以下命令检查已安装的版本:

pip show scikit-learn

如果你的版本低于0.21,请使用以下命令升级Scikit-learn:

pip install --upgrade scikit-learn

2. 从独立的joblib库导入

新版本的Scikit-learn使用了独立的joblib库。你需要从这个库中导入joblib。使用以下代码替换你先前导入joblib的代码:

from joblib import joblib

这样,你就可以重新导入joblib库了。

3. 更新其他相关的代码

如果你的代码中还存在其他使用了sklearn.externals的部分,需要进行一些更新。在Scikit-learn的新版本中,大多数以前位于sklearn.externals下的模块都被移动到了新的位置。你需要根据这些模块所在的新位置进行相应的更改。

总结

在Python中无法从sklearn.externals导入joblib的问题是由于新版本的Scikit-learn中将joblib从该模块中移除所致。要解决这个问题,你需要升级Scikit-learn到较新的版本,并从独立的joblib库中导入joblib。如果代码中还有其他使用了sklearn.externals的部分,你需要将它们迁移到新的位置。

希望这个解决方案可以帮助到你!