scikit-learn导入报错:No module named 'sklearn.utils'求助
解决
ModuleNotFoundError: No module named 'sklearn.utils'问题(Anaconda+Jupyter环境) 针对你在Python 3.8.18 + scikit-learn 1.3.2环境下,导入PCA/TSNE时出现的sklearn.utils模块缺失错误,结合你已尝试过的操作,以下是可能的原因及对应解决方法:
1. Jupyter内核未关联目标Anaconda环境
- 问题核心:Jupyter默认使用的内核可能不是你安装了正确scikit-learn的Anaconda环境,导致找不到对应模块。
- 解决步骤:
- 打开Anaconda Prompt,激活你的目标环境:
conda activate your_env_name - 在该环境中安装ipykernel:
conda install ipykernel - 将环境添加到Jupyter内核列表:
python -m ipykernel install --user --name your_env_name --display-name "Python (your_env_name)" - 重启Jupyter Notebook,在右上角内核选择器中切换到刚添加的内核,重新运行代码。
- 打开Anaconda Prompt,激活你的目标环境:
2. scikit-learn安装文件损坏
- 问题核心:即使安装过程无报错,部分文件可能因网络或缓存问题损坏,导致
utils模块缺失。 - 解决步骤:
- 完全卸载scikit-learn:
conda remove scikit-learn pip uninstall scikit-learn - 清理conda缓存:
conda clean --all - 重新安装指定版本:
(或用pip安装:conda install scikit-learn=1.3.2pip install scikit-learn==1.3.2)
- 完全卸载scikit-learn:
3. Python路径冲突(全局与Anaconda环境混淆)
- 问题核心:系统中存在多个Python版本,安装的scikit-learn所在路径与Jupyter调用的Python路径不匹配。
- 解决步骤:
- 在Jupyter中运行以下代码,查看当前Python执行路径:
import sys print(sys.executable) - 对比该路径与你的Anaconda目标环境Python路径(例如
C:\Users\你的用户名\anaconda3\envs\your_env_name\python.exe)是否一致。 - 若不一致,按照第1点的方法重新关联内核,确保所有安装操作都在激活目标环境后执行。
- 在Jupyter中运行以下代码,查看当前Python执行路径:
4. 权限不足导致安装不完整
- 问题核心:安装时权限不够,导致
sklearn/utils文件夹未完全写入site-packages目录。 - 解决步骤:
- 以管理员身份打开Anaconda Prompt(Windows),或在Linux/macOS下使用
sudo执行命令。 - 激活目标环境后重新安装scikit-learn。
- 检查
~\AppData\Roaming\Python\Python38\site-packages\sklearn目录下是否存在utils文件夹,若不存在则说明安装不完整,需重复卸载重装步骤。
- 以管理员身份打开Anaconda Prompt(Windows),或在Linux/macOS下使用
内容的提问来源于stack exchange,提问作者Elenius
相关产品推荐
相关产品推荐

