无法从“sklearn.externals”导入名称“joblib”

无法从“sklearn.externals”导入名称“joblib”

Cannot import name ‘joblib’ from ‘sklearn.externals’

出现“ImportError: cannot import name ‘joblib’ from ‘sklearn.externals’”是因为该joblib模块已从sklearn.externals. 要解决错误,请joblib直接导入模块,例如import joblib

importerror 无法从 sklearn 外部导入 joblib

ImportError: cannot import name 'joblib' from 'sklearn.externals' (/home/borislav/Desktop/bobbyhadz_python/venv/lib/python3.11/site-packages/sklearn/externals/__init__.py)

要解决该错误,请替换所有出现的以下导入。

主程序
# ⛔️ old import from sklearn.externals import joblib

通过以下导入。

# ✅ correct import import joblib
您可以使用CTRL + fIDE 查找所有出现的旧导入。

如果您收到“ModuleNotFoundError No module named ‘joblib’”,请安装该
joblib模块。

pip install joblib --upgrade pip3 install joblib --upgrade # 👇️ if you don't have pip in PATH environment variable python -m pip install joblib --upgrade python3 -m pip install joblib --upgrade # 👇️ py alias (Windows) py -m pip install joblib --upgrade # 👇️ for Anaconda conda install -c anaconda joblib # 👇️ for Jupyter Notebook !pip install joblib --upgrade

运行该命令时,您可能会收到一条错误消息,指出“错误:pip 的依赖项解析器当前未考虑所有已安装的包。” .

但是,即使显示错误,软件包也已成功安装。

如果错误未解决,您可以在入口点文件的顶部添加以下代码行。

主程序
import joblib import sklearn sklearn.externals.joblib = joblib print(sklearn.externals.joblib)
代码示例将externals.joblib属性设置为实际模块,因此在访问时不会引发错误。 joblib sklearn.externals.joblib

如果错误未解决,请尝试升级您的
scikit-learn模块版本。

pip install scikit-learn --upgrade pip3 install scikit-learn --upgrade # 👇️ if you don't have pip in PATH environment variable python -m pip install scikit-learn --upgrade python3 -m pip install scikit-learn --upgrade # 👇️ py alias (Windows) py -m pip install scikit-learn --upgrade # 👇️ for Anaconda conda install -c conda-forge scikit-learn # 👇️ for Jupyter Notebook !pip install scikit-learn --upgrade

If none of the suggestions helped, you can try to upgrade all packages in your
environment.

Upgrade all packages in your environment #

The most straightforward way to upgrade all outdated packages is to use a Python
script.

main.py
import pkg_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True)
You can store the script in a Python file, e.g. main.py and run the file with python main.py to upgrade all of the outdated packages.

Here are alternative commands you can use to upgrade all outdated packages.

shell
# 👇️ macOS or Linux pip install -U `pip list --outdated | awk 'NR>2 {print $1}'` # 👇️ Windows for /F "delims= " %i in ('pip list --outdated') do pip install -U %i

If you use a requirements.txt file, you can update it with the following
command.

shell
pip freeze > requirements.txt

Conclusion #

The “ImportError: cannot import name ‘joblib’ from ‘sklearn.externals'” occurs
because the joblib module has been removed from sklearn.externals. To solve
the error import the joblib module directly, e.g. import joblib.