如何将 python3 内核添加到 jupyter (IPython)

Posted

技术标签:

【中文标题】如何将 python3 内核添加到 jupyter (IPython)【英文标题】:How do I add python3 kernel to jupyter (IPython) 【发布时间】:2015-05-04 02:34:23 【问题描述】:

我的Jupyter 笔记本安装了python 2 内核。我不理解为什么。我可能在安装时搞砸了。我已经安装了python 3。如何将其添加到Jupyter? 这是默认的Jupyterpython3 -m install jupyter 插入并在浏览器中用jupyter notebook 打开的截图如下:

【问题讨论】:

python2 是您的默认内核。由于您将 ipython 安装到 python2 解释器中,因此您还可以将 python2 作为默认内核。如果您改为安装到python3.x,则默认情况下您将拥有python3 内核。 强烈推荐 pyenv 来管理 Python 版本和 Poetry / Conda 来正确管理库版本。注意其中一些其他答案,它们会让你陷入依赖地狱的道路。请参阅我对 Poetry 解决方案的回答,该解决方案允许现代、优雅的解决方案。 【参考方案1】:

这在 Ubuntu 16.04 上对我有用:

python2 -m pip install ipykernel
python2 -m ipykernel install --user

python3 -m pip install ipykernel
python3 -m ipykernel install --user

参考文档:Kernels for Python 2 and 3。安装 IPython 内核 - IPython Docs。

【讨论】:

啊,我更新了笔记本: sudo pip install -U ipykernel 并且它正在工作 适用于 macOS Sierra。甚至在 conda 环境下工作! 在 ubantu 16.04 上工作,只需刷新你的笔记本页面。谢谢! 我试过了,但是第 3 和第 4 个命令不起作用,所以我必须安装 pip3 并将它们作为 python3 -m pip install ipykernel python3 -m ipykernel install --user 运行它们 适用于 python2 但不适用于 python3。【参考方案2】:

确保您已安装ipykernel 并使用ipython kernel install 将内核规范放置在python2 的正确位置。然后ipython3 kernel install 用于 Python3。现在,无论您使用jupyter notebookipython notebook 还是ipython3 notebook(后两个已弃用),您都应该可以在这两个内核之间进行选择。

请注意,如果您想安装特定的 Python 可执行文件,可以使用以下技巧:

path/to/python -m ipykernel install <options>

这在使用环境 (venv,conda,...) 时有效,&lt;options&gt; 让您可以命名您的内核(请参阅--help)。所以你可以做

conda create -n py36-test python=3.6
source activate py36-test
python -m ipykernel install --name py36-test
source deactivate

现在您在下拉菜单中获得了一个名为 py36-test 的内核,以及其他的。

请参阅Using both Python 2.x and Python 3.x in IPython Notebook,其中包含更多最新信息。

【讨论】:

第一条指令运行良好。第二个发出:[TerminalIPythonApp] WARNING |找不到文件:'kernelspec' 您还需要在 python3 上安装/升级 IPython。 您可能需要--user--prefix 进行用户安装。它可以为 venvs 工作,但它的逻辑并没有被纳入。你需要复制 kernelspec 并明确引用 python 二进制文件。 谢谢,这在 Anaconda 上也对我有用 - 运行 ipython kernelspec install-self 然后使用 source activate python3 激活 Python3,然后使用相同的命令 ipython kernelspec install-self dazzle 的解决方案在 Ubuntu 14.04 上为我工作(在下面回答)。我做了sudo apt-get remove ipython3 ipython3-notebook; sudo apt-get install pip3; sudo pip3 install ipython; sudo ipython kernelspec install-self; sudo ipython3 kernelspec install-self。然后当我正常启动ipython notebook 时,我可以选择新的python3 notebook。【参考方案3】:
    使用 Python2 获得 ipython notebook(在 Windows7 上) 使用pip install -U jupyter 升级到 Jupyter 安装 Python3 使用pip3 install jupyter 再次安装 Jupyter 使用ipython3 kernelspec install-self安装Python3内核 我终于得到了 2 个工作内核。

【讨论】:

终端消息建议使用“jupyter”而不是 ipython。虽然它仍然有效! 是的,终于!如果没有ipython3 kernelspec install-self 命令,它只是用python3 内核代替了python2。比你。 在第 6 步中运行 ipython 内核安装。ipython3 kernelspec install-self 不再工作,jupyter kernelspec install-self 已弃用。 您在上述每个步骤中的PYTHONPATH 是什么? 设置 pathPYTHONPATH : ***.com/a/32195996/3226167 和 github.com/conda/conda/issues/1931【参考方案4】:

对于最新版本的 jupyter/ipython:使用 jupyter kernelspec

完整文档:https://ipython.readthedocs.io/en/latest/install/kernel_install.html

列出当前内核

$ jupyter kernelspec list
Available kernels:
  python2    .../Jupyter/kernels/python2
  python3    .../Jupyter/kernels/python3

在我的例子中,python3 内核设置被破坏了,因为链接的 py3.5 不再存在,取而代之的是 py3.6

添加/删除内核

删除:

$ jupyter kernelspec uninstall python3

添加一个新的: 使用您希望添加的 Python 并指向运行 jupiter 的 Python:

$ /path/to/kernel/env/bin/python -m ipykernel install --prefix=/path/to/jupyter/env --name 'python-my-env'

在https://ipython.readthedocs.io/en/6.5.0/install/kernel_install.html#kernels-for-different-environments中查看更多示例

再次列出:

$ jupyter kernelspec list
Available kernels:
  python3    /usr/local/lib/python3.6/site-packages/ipykernel/resources
  python2    /Users/stefano/Library/Jupyter/kernels/python2

文档:https://jupyter-client.readthedocs.io/en/latest/kernels.html#kernelspecs

详情

可用内核列在 Jupyter 数据目录中的 kernels 文件夹下(有关详细信息,请参阅 http://jupyter.readthedocs.io/en/latest/projects/jupyter-directories.html)。

例如在 macosx 上是 /Users/YOURUSERNAME/Library/Jupyter/kernels/

内核由kernel.json 文件简单描述,例如。为/Users/me/Library/Jupyter/kernels/python3/kernel.json


 "argv": [
  "/usr/local/opt/python3/bin/python3.5",
  "-m",
  "ipykernel",
  "-f",
  "connection_file"
 ],
 "language": "python",
 "display_name": "Python 3"

您可以使用kernelspec 命令(如上),而不是手动操作。它以前可以通过 ipython 现在通过 jupyter (http://ipython.readthedocs.io/en/stable/install/kernel_install.html#kernels-for-different-environments - https://jupyter-client.readthedocs.io/en/latest/kernels.html#kernelspecs) 获得。

$ jupyter kernelspec help
Manage Jupyter kernel specifications.

Subcommands
-----------

Subcommands are launched as `jupyter kernelspec cmd [args]`. For information on
using subcommand 'cmd', do: `jupyter kernelspec cmd -h`.

list
    List installed kernel specifications.
install
    Install a kernel specification directory.
uninstall
    Alias for remove
remove
    Remove one or more Jupyter kernelspecs by name.
install-self
    [DEPRECATED] Install the IPython kernel spec directory for this Python.

To see all available configurables, use `--help-all`

其他语言的内核

顺便说一句,与这个问题并不严格相关,但还有很多其他可用的内核......https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

【讨论】:

在没有评论的情况下投了反对票...知道什么时候不起作用会很有趣! 优秀的答案。我已经面对这个问题一周了,我无法找出解决方案。我应该早点看看你的解决方案;) 不适用于我的 Mac OS x 版本 10.13.5。 Python3 使用 brew 安装,而 jupyter 使用 pip3 安装。它只提供 python2 内核。 kernelspec install 似乎工作,但 kernelspec 列表没有显示它。 @JamesKPolk 从你的简洁描述中调试你的问题是相当困难的,但我遵循了与你类似的安装,除了现在我的 py3 来自 pyenv(管理多个版本比直接通过冲泡)。 这对我也不起作用。在我运行jupyter kernelspec install $HOME/.pyenv/versions/metrics/bin --name=metricskernel --user 之后,我得到了Installed kernelspec metricskernel in $HOME/.local/share/jupyter/kernels/metricskernel,但是里面没有kernel.json,因此它没有与kernelspec list 一起列出。相反,里面有一堆从$HOME/.pyenv/versions/metrics/bin 复制的脚本。 @JamesKPolk 与您的问题相似吗?你解决了吗?【参考方案5】:

如果您使用的是 anaconda 发行版,这对我有用(在 Macintosh 上):

$ conda create -n py3k python=3 anaconda

$ source activate py3k

$ ipython kernelspec install-self

只是最后一条命令的注释:

(py3k)Monas-MacBook-Pro:cs799 mona$ ipython kernelspec install-self
[TerminalIPythonApp] WARNING | Subcommand `ipython kernelspec` is deprecated and will be removed in future versions.
[TerminalIPythonApp] WARNING | You likely want to use `jupyter kernelspec` in the future
[InstallNativeKernelSpec] WARNING | `jupyter kernelspec install-self` is DEPRECATED as of 4.0. You probably want `ipython kernel install` to install the IPython kernelspec.
[InstallNativeKernelSpec] Installed kernelspec python3 in /usr/local/share/jupyter/kernels/python3
(py3k)Monas-MacBook-Pro:cs799 mona$ ipython kernel install 
Installed kernelspec python3 in /usr/local/share/jupyter/kernels/python3

在 OSX Yosemite 中通过上述步骤进行测试并输入jupter notebook 并在浏览器中创建一个新笔记本,您将看到以下屏幕截图:

【讨论】:

为我工作,但必须添加 --user,因为我有一个特定于用户的安装: 像魅力一样工作! 请注意,install-self 现在已弃用。【参考方案6】:

以下命令适用于我,在 macOS Sierra(10.12.3) 上

python3 -m pip install ipykernel
python3 -m ipykernel install --user

检查它 jupyter 内核规范列表 可用内核: python3 /Users/admin/Library/Jupyter/kernels/python3 python2 /anaconda2/share/jupyter/kernels/python2

【讨论】:

在 Ubuntu 18.04 上为我工作 也可以在我的 Windows 7 机器上使用。 也可以在他的 windows 10 机器上工作。 也适用于 High Sierra 10.13.6。 也适用于 MacOS BigSur 11.2.1【参考方案7】:

我使用以下命令在 macOS El Capitan(ipython 版本:4.1.0)上成功安装了 python3 内核。

python3 -m pip install ipykernel
python3 -m ipykernel install --user

您可以使用jupyter kernelspec list 查看所有已安装的内核。

更多信息可here

【讨论】:

谢谢,这也适用于 Linux Mint。 pip3Python3-setuptools 也是需要的。【参考方案8】:

打开终端(或窗口的 cmd),然后运行以下命令: (在窗口中,将“源”放在第二行。)

conda create -n py35 python=3.5
source activate py35
conda install notebook ipykernel
ipython kernel install --user --name=python3.5

我尝试了一些方法但它不起作用,然后我找到了这种方法。 它对我有用。希望对您有所帮助。

【讨论】:

为我工作。我使用 Mac OS 10.10.4。我在 Python 2.7 中使用 ipython notebook。我已经安装了 Python 3.5。然后我按照上面的4个步骤,在我的Jupyter notebook中成功拿到了Python3和Python3.5。 在 Windows 10 上的工作就像一个魅力 'source' 不是内部或外部命令、可运行程序或批处理文件。 @AbdullahSaid:您使用的是 Windows 吗?正如我所提到的,在 Windows 上,使用“激活 py35”,而不是“源激活 py35”。希望这会有所帮助。【参考方案9】:

我有 Python 2.7,希望能够在 Jupyter 中切换到 Python 3。

这些步骤适用于 Windows Anaconda 命令提示符:

conda update conda
conda create -n py33 python=3.3 anaconda
activate py33
ipython kernelspec install-self
deactivate

现在使用 Python2.7 的常用命令打开 ipython notebook 后,创建新 notebook 时也可以使用 Python3.3。

【讨论】:

这是最好的解决方案【参考方案10】:

我身边的最短和最好的解决方案

conda create --name py3-ml python=3.6
conda install ipykernel

source activate py3-ml # or conda activate py3-ml
python -m ipykernel install --user --name py3-ml

【讨论】:

想评论你的代码?在这种情况下如果你已经手动安装了 python 会发生什么?【参考方案11】:
sudo apt-get install python3-pip python3-dev
pip3 install -U jupyter

【讨论】:

【参考方案12】:

对于当前的 Python 启动器

如果你安装了 Py3 但默认为 py2

py -3 -m pip install ipykernel
py -3 -m ipykernel install --user

如果你安装了 Py2 但默认为 py3

py -2 -m pip install ipykernel
py -2 -m ipykernel install --user

【讨论】:

【参考方案13】:

在 Ubuntu 14.04 上,我必须结合使用以前的答案。

首先,安装pip3 apt-get install python-pip3

然后用pip3 安装jupyter pip3 install jupyter

然后使用ipython3安装内核 ipython3 kernel install

【讨论】:

【参考方案14】:

在 ElementaryOS Freya(基于 Ubuntu 14.04)上,没有其他答案立即对我有用;我得到了

[TerminalIPythonApp] 警告 |找不到文件:'kernelspec'

quickbug 在Matt 的回答下描述的错误。我必须先做:

sudo apt-get install pip3,然后

sudo pip3 install ipython[all]

此时您可以运行Matt 建议的命令;即:ipython kernelspec install-selfipython3 kernelspec install-self

现在,当我启动 ipython notebook 然后打开笔记本时,我可以从内核菜单中选择 Python 3 内核。

【讨论】:

【参考方案15】:

我设法在 Python2 之外安装了 Python3 内核。这是我的做法:

在 Jupyter 中打开一个新笔记本 复制并运行此处的两个单元格:Enable-Python-3-kernel

最新的工作链接可以找到here。

实际代码是:

! mkdir -p ~/.ipython/kernels/python3
%%file ~/.ipython/kernels/python3/kernel.json


 "display_name": "IPython (Python 3)", 
 "language": "python", 
 "argv": [
  "python3", 
  "-c", "from IPython.kernel.zmq.kernelapp import main; main()", 
  "-f", "connection_file"
 ], 
 "codemirror_mode": 
  "version": 2, 
  "name": "ipython"
 

【讨论】:

谢谢!它适用于我(适用于 Python 3 和 Julia)。 最好不要将答案中最重要的部分隐藏在链接后面(它可能会消失,然后答案变得毫无价值)。 链接在 IA:web.archive.org/web/20160319053446/http://… @quickbug 链接坏了 @quickbug 链接已损坏!对于未来的答案,请确保您截取屏幕截图,并且您的答案包含整个内容,因为您永远不能真正依赖外部链接【参考方案16】:

添加内核意味着您希望将Jupyter Notebook 与未显示在列表中的python 版本一起使用。

简单的方法 - 使用所需的 python 版本启动笔记本,假设我安装了 python3.7 然后使用终端 (cmd) 中的以下命令运行笔记本:

python3.7 -m notebook

有时会使用别名py, py3.7, python 而不是python3.7

【讨论】:

【参考方案17】:

官方文档中详细记录了该解决方案:https://ipython.readthedocs.org/en/latest/install/kernel_install.html

我尝试了第一种方法。由于我已经安装了ipykernel,只需运行python3 -m ipykernel install --user 即可解决问题。

【讨论】:

【参考方案18】:

我遇到了同样的问题。每当我使用以下命令启动 jupyter 笔记本时,我都看不到创建新 Python 3 笔记本的选项。

我通过运行以下命令解决了这个问题。

pip install notebook

之后我使用与之前相同的命令启动笔记本

jupyter notebook

我能够看到我的主目录并创建新的 python3 笔记本。

【讨论】:

这对我进行硬盘恢复后很有帮助。我没有意识到我没有重新安装笔记本库【参考方案19】:

此答案解释了如何使用Poetry dependency management 创建 Python 3、Jupyter 1 和 ipykernel 5 工作流程。 Poetry 使为 Jupyter 笔记本创建虚拟环境变得容易。我强烈建议不要运行 python3 命令。安装全局依赖项的 Python 工作流程为您设置了依赖项地狱。

以下是干净、可靠的 Poetry 工作流程的摘要:

poetry add pandas jupyter ipykernel安装依赖 用poetry shell在虚拟环境中打开一个shell 使用jupyter notebook 打开 Jupyter notebook 并访问所有虚拟环境依赖项

还有干净的Conda 工作流程。注意这个帖子中的很多答案——它们会让你走上一条会导致很多痛苦和痛苦的道路。

【讨论】:

【参考方案20】:

将多个内核安装到单个虚拟环境 (VENV)

这些答案中的大多数(如果不是全部)假设您很乐意在全球范围内安装软件包。如果您满足以下条件,则此答案适合您:

使用 *NIX 机器 不喜欢全局安装包 不想使用 anaconda 你很乐意从命令行运行 jupyter 服务器 想要了解内核安装“是”什么/在哪里。

(注意:这个答案在 python3-jupyter 安装中添加了一个 python2 内核,但在概念上很容易交换东西。)

    先决条件

      您位于运行 jupyter 服务器并保存文件的目录中 python2 已安装在您的机器上 python3 已安装在您的机器上 virtualenv 已安装在您的计算机上

    创建一个python3 venv并安装jupyter

      创建一个新的python3 venv:python3 -m venv .venv 激活venv:. .venv/bin/activate 安装 jupyterlab:pip install jupyterlab。这将在本地创建用于运行笔记本的所有基本基础架构。 注意:通过在此处安装 jupyterlab,您还可以在 $PWD/.venv/share/jupyter/kernels/python3/ 中生成默认的“内核规范”(见下文)。如果你想在别处安装和运行 jupyter,并且只使用这个 venv 来组织你的所有内核,那么你只需要:pip install ipykernel 您现在可以使用jupyter lab 运行 jupyter lab(然后在浏览器中访问控制台中显示的 url)。到目前为止,您只会看到一个名为“Python 3”的内核选项。 (此名称由您的 kernel.json 文件中的 display_name 条目决定。)

    添加一个python2内核

      退出 jupyter(或在同一目录中启动另一个 shell):ctrl-c 停用您的 python3 venv:deactivate 在同一目录中为 python2 创建一个新的 venv:virtualenv -p python2 .venv2 激活你的 python2 venv:. .venv2/bin/activate 安装 ipykernel 模块:pip install ipykernel。这还将在.venv2/share/jupyter/kernels/python2 中为这个 python2 venv 生成默认内核规范 将这些内核规范导出到您的 python3 venv:python -m ipykernel install --prefix=$PWD/.venv。这基本上只是将目录$PWD/.venv2/share/jupyter/kernels/python2 复制到$PWD/.venv/share/jupyter/kernels/ 切换回您的 python3 venv 和/或重新运行/重新检查您的 jupyter 服务器:deactivate; . .venv/bin/activate; jupyter lab。如果一切顺利,您将在内核列表中看到Python 2 选项。您可以通过处理简单的print 'Hellow world'print('Hellow world') 命令来测试它们是否在运行真正的python2/python3 解释器。 注意:如果您愿意安装 ipykernel 并从全局空间引用 python2-kernel 规范,则无需为 python2 创建单独的 venv,但我更喜欢将所有依赖项放在一个本地目录中

TL;DR

    (可选)安装 R 内核。这对于培养对内核“是什么”的认识很有指导意义。
      从同一目录安装 R IRkernel 包:R -e "install.packages('IRkernel',repos='https://cran.mtu.edu/')"。 (这将安装到您的标准 R 包位置;对于 Mac 上自制安装的 R,这将类似于 /usr/local/Cellar/r/3.5.2_2/lib/R/library/IRkernel。) IRkernel 软件包带有导出其内核规范的功能,因此请运行:R -e "IRkernel::installspec(prefix=paste(getwd(),'/.venv',sep=''))"。如果您现在查看$PWD/.venv/share/jupyter/kernels/,您会发现一个带有kernel.json 文件的ir 目录,看起来像这样:

  "argv": ["/usr/local/Cellar/r/3.5.2_2/lib/R/bin/R", "--slave", "-e", "IRkernel::main()", "--args", "connection_file"],
  "display_name": "R",
  "language": "R"

总之,内核只是“是”从kernel.json 文件中调用特定于语言的可执行文件,jupyter 在.../share/jupyter/kernels 目录中查找并在其接口中列出;在这种情况下,将调用 R 来运行函数IRkernel::main(),该函数将向 Jupiter 服务器来回发送消息。同样,python2 内核只是“是”使用模块 ipykernel_launcher 调用 python2 解释器,如 .venv/share/jupyter/kernels/python2/kernel.json 等所示。

如果您想一口气运行所有这些指令,这里是script。

【讨论】:

嗨 Magnus,我如何强制 jupyter 笔记本使用非默认内核(例如 .venv3)?无法做到这一点一直是我的眼中钉。我想默认使用虚拟环境内核!!【参考方案21】:

这是我发现的一个 Windows/非命令行方法,它对我有用: 找到存储内核文件的文件夹(在我的机器上 - C:\ProgramData\jupyter\kernels - 注意 ProgramData 是一个隐藏文件夹),创建现有内核文件夹的副本,更改名称并编辑其中的 json 文件指向新内核的目录。在此 json 中,您还可以编辑 ipython 中显示的内核名称(例如,如果出于某种原因需要进一步区分,您可以指定 2.7.9 而不仅仅是 python 2)。

【讨论】:

【参考方案22】:

当您使用 conda 管理您的 python 环境时,请遵循以下两个步骤:

    activate py3(在 Windows 上或在 Linux 上 source activate py3conda install notebook ipykernel 或直接使用 conda install jupyter

【讨论】:

【参考方案23】:

我在使用 python-2 时遇到了同样的错误。我想运行 python-2 jupyter notebook 会话,但默认情况下我得到的是 python-3。所以最简单的解决方法是为 python-2 打开 Anaconda 终端并输入 'jupyter notebook' ,它将毫无问题地启动 jupyter-notebook 会话。同样可以用 python-3 进行尝试

【讨论】:

【参考方案24】:

我很确定你所要做的就是运行

pip3 安装 jupyter

【讨论】:

以上是关于如何将 python3 内核添加到 jupyter (IPython)的主要内容,如果未能解决你的问题,请参考以下文章

电脑上新下载了python3.8,如何将jupyter的内核切换为这个新安装的3.8版本?

sh 将ipython / jupyter内核添加到python环境中

如何将 conda 环境添加到 jupyter 实验室

在 jupyter 中选择 python 内核

Tkinter 崩溃 Jupyter 内核?

为啥我的 Jupyter notebook 运行的是 ipython 内核而不是 python3?分组问题