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

我的Jupyter笔记本安装了python 2内核。我不明白为什么。我可能在安装的时候搞砸了。我已经安装了python 3。如何将它添加到Jupyter? 下面是用python3 -m install jupyter安装并在浏览器中用__abc2打开的默认Jupyter的截图: enter image description here < / p >

472267 次浏览

确保已经安装了ipykernel,并使用ipython kernel install将内核spec放到python2的正确位置。然后ipython3 kernel install for Python3。现在,无论你使用的是jupyter notebookipython notebook还是ipython3 notebook(后两个已弃用),你都应该能够在这两个内核之间进行选择。

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

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

这在使用环境(venv,conda,…)时有效,并且<options>允许你命名内核(参见--help)。所以你可以

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

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

参见使用Python 2。3. Python。IPython Notebook中的x,它有更多的最新信息。

除了Python2之外,我还设法安装了Python3内核。我是这样做的:

最新的工作链接可以在在这里中找到。

实际代码为:

! 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 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。

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

[TerminalIPythonApp]警告|文件不存在:'kernelspec'

quickbug在马特的答案中描述的错误。我首先要做的是:

sudo apt-get install pip3,然后

sudo pip3 install ipython[all]

这时,你可以运行马特建议的命令;即:ipython kernelspec install-selfipython3 kernelspec install-self

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

如果你使用的是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并在浏览器中创建一个新笔记本,你将看到以下截图: enter image description here < / p >
下面是我发现的一个Windows/非命令行方法,它对我有用: 找到存储内核文件的文件夹(在我的机器上- C:\ProgramData\jupyter\kernels -注意ProgramData是一个隐藏文件夹),创建一个现有内核文件夹的副本,更改名称并编辑json文件指向新的内核目录。在这个json中,你还可以编辑在ipython中显示的内核名称(例如,如果你出于某种原因需要进一步区分,你可以指定2.7.9而不是python2)
  1. 使用Python2获得ipython笔记本(在Windows7上)
  2. pip install -U jupyter升级到Jupyter
  3. 安装Python3
  4. 再次使用pip3 install jupyter安装Jupyter
  5. 使用ipython3 kernelspec install-self安装Python3内核
  6. 我终于有两个工作的玉米粒了。

great results

在Ubuntu 14.04上,我不得不使用之前答案的组合。

首先,安装pip3 apt-get install python-pip3 < / p > 然后使用pip3安装jupyter pip3 install jupyter < / p > 然后使用ipython3安装内核 ipython3 kernel install < / p >

解决方案在官方文档中有很好的文档:https://ipython.readthedocs.org/en/latest/install/kernel_install.html

我尝试了第一种方法。因为我已经安装了ipykernel,所以简单地运行python3 -m ipykernel install --user就解决了这个问题。

这对我在Ubuntu 16.04上是有效的:

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


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

参考文档:
Python 2和3的内核。安装IPython内核- IPython Docs.

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

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

你可以用jupyter kernelspec list看到所有已安装的内核。

更多信息可用在这里

打开终端(或CMD为窗口),然后执行以下命令: (在窗口中,在第二行中删除“source”)

conda create -n py35 python=3.5
source activate py35
conda install notebook ipykernel
ipython kernel install --user --name=python3.5
我尝试了一些方法,但它不工作,然后我发现这个方法。 这对我很管用。

对于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 DATA DIRECTORY的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

sudo apt-get install python3-pip python3-dev
pip3 install -U jupyter

用于当前的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

当你使用conda管理你的python envs时,遵循以下两个步骤:

  1. activate py3 (Windows上或Linux上的source activate py3)
  2. conda install notebook ipykernel或者直接使用conda install jupyter

以下命令适用于macOS Sierra(10.12.3)

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

检查它 Jupyter内核规格列表 可用内核: python3 /用户/ admin /图书馆/ Jupyter /内核/ python3 python2 anaconda2 /分享/ jupyter /内核/ python2 < / p >

我很确定你要做的就是逃跑

Pip3安装jupyter

最短最好的解决方案

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

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

这些答案中的大多数(如果不是全部的话)假设您乐于在全局范围内安装包。这个答案适合你,如果你:

  • 使用*NIX机器
  • 不喜欢全局安装包
  • 不想使用anaconda <->你很乐意从命令行运行jupyter服务器
  • 想要知道内核安装“在哪里”。

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

  1. < p >先决条件

    1. 您位于运行jupyter服务器并保存文件的目录中
    2. Python2已安装在您的机器上
    3. Python3已安装在您的机器上
    4. Virtualenv安装在您的机器上
    5. 李< / ol > < / >
    6. 创建python3 venv并安装jupyter

      1. 创建一个新的python3 venv: python3 -m venv .venv
      2. 激活venv: . .venv/bin/activate
      3. 安装jupyterlab: pip install jupyterlab。这将在本地创建运行笔记本电脑的所有必要基础设施。
      4. 注意:通过在这里安装jupyterlab,你还会在$PWD/.venv/share/jupyter/kernels/python3/中生成默认的“内核规格”(见下文)。如果你想在其他地方安装和运行jupyter,并且只使用这个venv来组织你所有的内核,那么你只需要:pip install ipykernel
      5. 您现在可以使用jupyter lab运行jupyter lab(并转到浏览器到控制台中显示的url)。到目前为止,你只会看到一个名为“Python 3”的内核选项。(此名称由kernel.json文件中的display_name条目决定。)
      6. 李< / ol > < / >
      7. 添加python2内核

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

        博士TL;

        1. 可选安装R内核。这对于理解内核“是什么”很有指导意义。
          1. 在同一个目录下,安装R IRkernel包:R -e "install.packages('IRkernel',repos='https://cran.mtu.edu/')"。(这将安装到您的标准R-packages位置;对于Mac上自定义安装的R,它看起来像/usr/local/Cellar/r/3.5.2_2/lib/R/library/IRkernel。)
          2. IRkernel包附带了一个导出内核规格的函数,因此运行:R -e "IRkernel::installspec(prefix=paste(getwd(),'/.venv',sep=''))"。如果你现在查看$PWD/.venv/share/jupyter/kernels/,你会发现一个包含kernel.json文件的ir目录,它看起来像这样:
          3. 李< / ol > < / >
          {
          "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等所示。

          这里是脚本,如果你想一下子运行所有这些指令。

添加kernel意味着你想在列表中没有显示的python版本中使用Jupyter Notebook

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

python3.7 -m notebook

有时会使用别名py, py3.7, python来代替python3.7

我在python-2中得到了同样的错误。我想运行python-2 jupyter笔记本会话,但默认情况下,我得到了python-3。所以最简单的解决方法是为python-2打开Anaconda终端并键入“jupyter笔记本”,它将毫无问题地启动jupyter-notebook会话。同样,也可以在python-3中尝试

我也面临着同样的问题。每当我使用以下命令启动jupyter notebook时,我都不会看到创建一个新的Python 3 notebook的选项。

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

pip install notebook

之后,我开始笔记本与相同的命令之前

jupyter notebook

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

这个答案解释了如何使用诗歌依赖管理创建Python 3、Jupyter 1和ipykernel 5工作流。诗歌使创建一个虚拟环境的Jupyter笔记本很容易。我强烈建议不要运行python3命令。安装全局依赖项的Python工作流程会让你陷入依赖项地狱。

以下是对干净、可靠的Poetry工作流程的总结:

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

还有干净的Conda工作流。注意这篇文章中的很多答案——它们会让你走上一条会给你带来很多痛苦的道路。痛苦。

要将特定的python添加到jupyter内核中,首先使用以下命令检查可用的python或python3的路径

$ where python3

假设你有'/usr/local/bin/python3'作为路径之一。要为这个版本的python创建一个名为'name_to_new_kernel'的内核,该内核将显示在jupyter中,

$ /usr/local/bin/python3 -m pip install ipykernel
$ /usr/local/bin/python3 -m ipykernel install --user --name name_to_new_kernel

使用实例检查名称为'name_to_new_kernel'的新内核是否添加到jupyter

jupyter kernelspec list