在 ipython/Jupyter notebook 中导入 scikit-learn
Posted
技术标签:
【中文标题】在 ipython/Jupyter notebook 中导入 scikit-learn【英文标题】:Importing scikit-learn in ipython/Jupyter notebook 【发布时间】:2016-12-27 04:01:24 【问题描述】:我能够从 python 或 ipython 控制台(python 2.7 和 3.5)导入 scikit-learn,但是当我在 ipython 笔记本(同样是 2.7 或 3.5)中执行 import sklearn
时,我收到以下错误消息。我怎样才能解决这个问题?
ImportError Traceback(最近调用 最后)在() ----> 1个导入sklearn
ImportError: 没有名为 sklearn 的模块
【问题讨论】:
如何启动 notebook(命令)?你确定你使用的是与运行 ipython 控制台时相同的 python 环境吗? 我通过输入“ipython notebook”来启动它。我不知道我是否使用相同的环境。我怎样才能检查它?如果他们不同意,我该如何使用相同的环境强制执行? 创建一个 virtualenv 并从那里运行所有命令。您可能希望在该 virtualenv 中安装jupyter
包。
有没有办法在不创建虚拟环境的情况下做到这一点?这似乎是我每次使用 ipython 脚本时都必须执行和跟踪的额外步骤。
我想为了易于使用,我想要实现的只是在 iPython notebook 中使用与我在基于 shell 的 iPython 中使用的相同的环境。为什么这么难?
【参考方案1】:
如果您使用 Anaconda Navigator,您可以手动安装 scikit-learn。转到 Environments 选项卡,验证它是否安装在环境根目录和您要使用它的环境中。您可以使用搜索引擎找到 scikit-learn。点击应用并尝试一下。
祝你好运。
【讨论】:
【参考方案2】:您报告的问题仍然有点不清楚,因为您没有详细说明您设置 Python 或 iPython 所采取的步骤。此类信息以及您的操作系统 (OS) 版本信息将有助于回答您的问题。
我假设您使用某些版本的 Windows(如果没有,请在问题中指定您的操作系统)。此外,您似乎安装了多个版本的 Python,并且 iPython 连接到其中一个。首先,转到 iPython 并使用菜单“帮助 > 关于”来检查哪个版本的 Python 连接到 iPython。写下来以备将来参考。
Net,你要检查这个版本的 Python 是否安装了 sklearn。在 Python 中安装包(也适用于 sklearn)通常最方便的方法是 pip,请参阅 here。但是,在您使用 pip 安装或升级 sklearn 之前,您首先要确保您将提供的 pip 命令将在链接到您的笔记本的 Python 安装实例中安装 sklearn。
为此,您需要检查与您的 iPython 链接的 Python 版本是系统路径中唯一可识别的版本(这意味着当您在 Windows 命令提示符下输入命令时,它们将被识别作为此版本 Python 的命令)。
Here 是关于如何在 Windows 7 中进行检查的说明。对于其他版本的 Windows,请 google 或搜索您选择的引擎名称,例如“将 python 添加到路径”。如果您使用的是不同的操作系统,则可能需要遵循完全不同的过程。在这种情况下,我建议您编辑您的问题并搜索 ***。
确定附加到路径变量的 python 版本是链接到 iPython 的版本后,转到命令提示符(在开始菜单中搜索“cmd”),打开它,然后键入“pip install” sklearn'。 Pip 现在将在 iPython 使用的 Python 版本中为您安装 sklearn 包。
最后,您可以使用“cd”命令转到 iPython 的首选工作目录(您要放置项目的目录),使用命令“jupyter notebook”启动 Jupyter notebook,理论上,导入 sklearn 以在您的代码中使用。
请注意,sklearn 和 Jupyter notebook 存在各种可能的版本/配置问题,我不在这里讨论。如果其中任何一个发生,它们是下一个 *** 问题的完美输入; )
祝你好运,
变态
【讨论】:
以上是关于在 ipython/Jupyter notebook 中导入 scikit-learn的主要内容,如果未能解决你的问题,请参考以下文章
iPython/jupyter qtconsole 无法在 anaconda 2.4.0 中启动
iPython/ Jupyter notebook 只清除一行输出