如何将 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
?
这是默认的Jupyter
用python3 -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 notebook
、ipython 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
的内核,以及其他的。
请参阅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
是什么?
设置 path
和 PYTHONPATH
: ***.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 installjupyter 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。pip3
和 Python3-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-self
和ipython3 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 py3
)
conda 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版本?