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


320

我的Jupyter笔记本安装了python 2内核。我不明白为什么。安装时我可能搞砸了。我已经python 3 安装好了。如何将其添加到Jupyter?这是默认Jupyter安装python3 -m install jupyter并在浏览器中打开的屏幕截图,jupyter notebook如下所示: 在此处输入图片说明


python2是您的默认内核。由于您将ipython安装到python2解释器中,因此您也将其python2作为默认内核。如果改为安装到中python3.x,则默认情况下将具有python3内核。
cel 2015年

我发现这个博客是非常有用的:datapoly.org/2018/06/18/...

Answers:


294

这在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文档。


3
嗯,我通过以下方式更新了笔记本:sudo pip install -U ipykernel,它正在工作
Jamesszm,2017年

在macOS Sierra上工作。甚至在conda环境下工作!
osa

在ubantu 16.04上工作,只需刷新笔记本页面即可。谢谢!
ketankk '18年

1
我尝试了它,但是第3条和第4条命令不起作用,因此我必须安装pip3并以python3 -m pip的方式运行它们,安装python3 -m ipykernel的安装--user
Mert Cuhaci

在Mac Mojave上完美工作
-mleafer

227

确保已ipykernel安装并用于ipython kernel install将kernelspec放置在python2的正确位置。然后ipython3 kernel install用于Python3。现在,无论您使用还是,(都已弃用后两个)jupyter notebook,您都应该能够在这两个内核之间进行选择。ipython notebookipython3 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在下拉菜单中获得一个名为内核的名称,以及其他名称。

请参阅在IPython Notebook中同时使用Python 2.x和Python 3.x,其中包含更多最新信息。


2
第一条指令效果很好。第二个问题是:[TerminalIPythonApp]警告| 文件未找到:“kernelspec”
quickbug

2
您还需要在python3上安装/升级IPython。
马特

9
您可能需要--user--prefix需要用户安装。它可以用于venvs,但是它的逻辑尚不成熟。您需要复制kernelspec并显式引用python二进制文件。
马特2015年

2
谢谢,这对我在Anaconda上也ipython kernelspec install-self起作用-使用source activate python3相同的命令运行然后激活Python3ipython kernelspec install-self
Colin Gravill

3
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笔记本。
2015年

124
  1. 使用Python2获得了ipython笔记本(在Windows7上)
  2. 升级到Jupyter pip install -U jupyter
  3. 安装Python3
  4. 再次使用安装Jupyter pip3 install jupyter
  5. 使用安装Python3内核 ipython3 kernelspec install-self
  6. 我终于有了2个工作内核。

很棒的结果


1
终端消息建议使用“ jupyter”代替ipython。虽然仍然有效!
朱利安

2
是的,终于!如果没有该ipython3 kernelspec install-self命令,它将python3内核替换为python2。比你。
Emilio Ferrucci

1
请改为在步骤6 ipython3 kernelspec install-self中运行ipython kernel install。该命令不再起作用,jupyter kernelspec install-self已弃用。
ambodi

PYTHONPATH在上述每个步骤中都做什么?
user3226167


73

对于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并指向运行木星的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

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

细节

可用的内核kernels在Jupyter数据目录下的文件夹下列出(有关详细信息,请参见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/ zh / 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


毫无评论地投票了...知道什么时候不起作用很有趣!
Stefano

2
极好的答案。我已经面对这个问题一个星期了,无法解决。我应该早先看过您的解决方案;)
DucCuong

5
在Mac OS x ver 10.13.5上不为我工作。使用brew安装Python3,并使用pip3安装jupyter。它仅提供python2内核。kernelspec install <path_to_python_3>似乎可以工作,但是kernelspec列表未显示它。
总统詹姆斯·波尔克(James K. Polk)

@JamesKPolk很难从简洁的描述中调试出问题所在,但是我进行了与您的安装类似的安装,除了现在我的py3来自pyenv(比直接通过brew更容易管理多个版本)。
Stefano

1
这对我也不起作用。运行后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与您的问题类似吗?你有能力解决吗?
Hlib Babii

38

如果您使用的是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并在浏览器中输入并创建新笔记本,您将看到以下屏幕截图: 在此处输入图片说明


4
为我工作,但必须添加--user,因为我有一个针对用户的安装:
brianray

奇迹般有效!
SeaWarrior404

请注意,install-self现在已弃用。
Christian Hudon

31

在macOS Sierra(10.12.3)上,以下命令对我有用

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

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


1
为我工作在Ubuntu 18.04
akarve

也可以在Windows 7机器上使用。
克里斯蒂安·K,

也可以在他的Windows 10计算机上工作。
瑞士

同样适用于High Sierra 10.13.6。
spacetyper

26

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

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

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

更多信息在这里


谢谢,这也适用于Linux Mint。pip3并且Python3-setuptools也需要。
cardamom

19

打开终端(对于窗口,则为cmd),然后运行以下命令:(在窗口上,在第二行中删除“ source”。)

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笔记本中成功获取了Python3和Python3.5。
黑色的比尔·安卡拉贡

在Windows 10上像魅力一样工作
代码刺客

无法将“源”识别为内部或外部命令,可操作程序或批处理文件。
阿卜杜拉赛义德

1
@AbdullahSaid:您正在使用Windows吗?如前所述,在Windows上,请使用“ activate py35”,而不是“ source activate py35”。希望这可以帮助。
Catbuilts

13

我拥有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笔记本后,创建新笔记本时Python3.3也可用。


这是最好的解决方案
亚当


6

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

5

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

一,安装 pip3 apt-get install python-pip3

然后用pip3安装jupyter pip3 install jupyter

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


4

在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内核。


4

我设法安装了除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"
 }
}

1
谢谢!它适用于我(适用于Python 3和Julia)。
Piotr Migdal

4
最好不要将答案的最重要部分隐藏在链接后面(它可能会消失,然后答案变得一文不值)。
克里斯


2
@quickbug链接已断开
JPCF '16

1
@quickbug链接已断开!对于未来的答案,请确保您截取了屏幕截图,并且您的答案包含了整个内容,因为您永远无法真正依靠外部链接
Mona Jalal


3

我这边最短,最好的解决方案

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,会发生什么情况?
user2305193

3

添加内核意味着您要使用Jupyter Notebook未在列表中显示的python版本。

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

python3.7 -m notebook

有时python3.7使用别名代替安装py, py3.7, python


2

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

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

  • 使用* NIX机器
  • 不喜欢在全球安装软件包
  • 不想使用anaconda <->,您很高兴从命令行运行jupyter服务器
  • 想要了解内核安装的“位置” /位置。

(注意:此答案将python2内核添加到python3-jupyter安装中,但从概念上讲,它很容易互换。)

  1. 先决条件

    1. 您位于运行jupyter服务器并保存文件的目录中
    2. python2已安装在您的计算机上
    3. python3安装在您的机器上
    4. virtualenv已安装在您的计算机上
  2. 创建一个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”的内核选项。(此名称由文件中的display_name条目确定kernel.json。)
  3. 添加一个python2内核

    1. 退出jupyter(或在同一目录中启动另一个shell): ctrl-c
    2. 停用python3 venv: deactivate
    3. 在与python2相同的目录中创建一个新的venv: virtualenv -p python2 .venv2
    4. 激活python2 venv: . .venv2/bin/activate
    5. 安装ipykernel模块:pip install ipykernel。这也将为此python2 venv生成默认内核规范.venv2/share/jupyter/kernels/python2
    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,但我希望将所有依赖项放在一个本地目录中

TL; DR

  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/将找到一个ir目录,其中kernel.json包含类似于以下内容的文件:
{
  "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.jsonJupyter在.../share/jupyter/kernels目录中查找并在其接口中列出的文件中,调用特定于语言的可执行文件。在这种情况下,将调用R来运行函数IRkernel::main(),该函数会将消息来回发送给Jupiter服务器。同样,python2内核只是“调用”了带有模块的python2解释器,ipykernel_launcher.venv/share/jupyter/kernels/python2/kernel.json等等所示。

如果您想一次运行所有这些指令,这是一个脚本


嗨,马格纳斯(Magnus),如何强制jupyter笔记本使用非默认内核(例如.venv3)?无法做到这一点永远是我这边的荆棘。我想默认使用虚拟环境内核!
新手

0

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


0

使用conda管理python env时,请遵循以下两个步骤:

  1. activate py3 (在Windows或 source activate py3 Linux上)
  2. conda install notebook ipykernel 或只是使用 conda install jupyter

0

我在python-2上遇到了同样的错误。我想运行python-2 jupyter笔记本会话,但默认情况下我正在获取python-3。因此,最简单的解决方法是为python-2打开Anaconda终端并键入'jupyter notebook',它将启动jupyter-notebook会话而不会出现任何问题。可以用python-3尝试类似


-2

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

pip3安装jupyter

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.