无法从“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: 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 + f
IDE 查找所有出现的旧导入。如果您收到“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.
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)
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.
# 👇️ 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.
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
.