首页 > 解决方案 > 没有名为“sklearn”的模块错误,尽管 pip 或 pip3 都显示 sklearn 已安装

问题描述

我今天玩了一下 pyenv 尝试安装某个 python 版本以及用于数据科学的 sklearn,但似乎我已经破坏了它 - 我无法导入 sklearn,尽管当我尝试使用 pip3/pip 安装它时,我收到消息显示 sklearn 已安装。

当前情况 在一个jupyter笔记本上,

import sklearn

显示“没有名为 'sklearn' 的模块错误”。但是当我尝试使用安装 sklearn

!pip3 install sklearn

表明

Requirement already satisfied: sklearn in /usr/local/var/pyenv/versions/3.6.5/lib/python3.6/site-packages (0.0)

Requirement already satisfied: scikit-learn in /usr/local/var/pyenv/versions/3.6.5/lib/python3.6/site-packages (from sklearn) (0.19.1)

我也尝试在 jupyter notebook 外安装 sklearn,消息是一样的。

我今天早些时候所做的 - 我的 Mac (High Sierra) 已经有 python 2.7,但我需要 python 3,所以我首先使用安装 python3

brew install python3

安装sklearn,但出现一些错误,通过在线研究,我发现sklearn似乎不支持最新的python 3.7。- 在尝试获取旧版本的python之前,我卸载了Python3以及Jupyter Notebook - 我尝试使用brew来获取旧版本的python,但在网上发现brew无法轻松安装以前的版本,所以我安装了pyenv 而不是根据一些在线帖子(实际上并没有很好地理解它) - 在 pyenv 我安装了 python 2.6.5

pyenv install 2.6.5

它显示已安装 sklearn) - 但是,当我尝试导入 sklearn 时,它显示未找到模块。

任何人都可以指出一个可能出错的方向吗?上面的列表可能不是很准确,因为我可能已经反复安装和卸载东西只是为了尝试。但是我越尝试,我就越困惑。我真的很感激任何帮助。谢谢!

标签: pythonpython-3.xscikit-learnjupyter-notebookpyenv

解决方案


如果您使用的是 conda 环境,则此错误通常出现在某些模块上。我在使用 tensorflow 时遇到了类似的错误。解决方案是使用 conda 安装 jupyter

conda install jupyter

在我花了几个小时一次又一次地尝试卸载和安装软件包之后,这为我解决了这个错误。问题是,如果您创建了 jupyter,则它不是来自环境内部。


推荐阅读