python - 没有名为“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
- 我安装了jupyter笔记本
在 jupyter notebook 中,我尝试使用
!pip3 安装 sklearn
安装sklearn,但出现一些错误,通过在线研究,我发现sklearn似乎不支持最新的python 3.7。- 在尝试获取旧版本的python之前,我卸载了Python3以及Jupyter Notebook - 我尝试使用brew来获取旧版本的python,但在网上发现brew无法轻松安装以前的版本,所以我安装了pyenv 而不是根据一些在线帖子(实际上并没有很好地理解它) - 在 pyenv 我安装了 python 2.6.5
pyenv install 2.6.5
我将 2.6.5 设置为全局 python 版本
pyenv 全球 2.6.5
我再次安装了jupyter notebook(可能我也同时安装了ipython),这似乎依赖于python 3.7,所以从日志中安装了python 3.7(这不是我想要的)
- 我忽略了安装python 3.7的事实,事实上,pyenv根本没有显示python 3.7(所以pyenv版本只显示系统和python 3.6.5)
- 我再次安装了sklearn
当我做
pip3 安装 sklearn
它显示已安装 sklearn) - 但是,当我尝试导入 sklearn 时,它显示未找到模块。
任何人都可以指出一个可能出错的方向吗?上面的列表可能不是很准确,因为我可能已经反复安装和卸载东西只是为了尝试。但是我越尝试,我就越困惑。我真的很感激任何帮助。谢谢!
解决方案
如果您使用的是 conda 环境,则此错误通常出现在某些模块上。我在使用 tensorflow 时遇到了类似的错误。解决方案是使用 conda 安装 jupyter
conda install jupyter
在我花了几个小时一次又一次地尝试卸载和安装软件包之后,这为我解决了这个错误。问题是,如果您创建了 jupyter,则它不是来自环境内部。
推荐阅读
- python - ELMo与Keras一起使用,如何正确输入训练集和标签?
- python - python中的轨迹交叉点
- python - 如何防止“hyperopt”将失败的模型结果整合到参数更新中?
- c++ - 使用 StretchDIBits 复制 PNG(带 alpha)
- python - 熊猫矢量化操作中的多个布尔条件
- docker - 从 compose 容器访问 dockerfile 的卷
- node.js - 如何使用 Pino.js 渲染新行
- ios - 如何在 Firestore 中存储对象数组
- python - 返回语句不返回电子邮件的值
- git - IntelliJ IDEA 无法识别我的项目在 git 中,分支名称为“N/A”