【问题标题】:How do I add python3 kernel to jupyter (IPython)如何将 python3 内核添加到 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 解决方案的回答,该解决方案允许现代、优雅的解决方案。

标签: ipython ipython-notebook jupyter jupyter-notebook


【解决方案1】:

确保您已安装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 笔记本。
【解决方案2】:

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

最新的工作链接可以找到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)。
  • 最好不要将答案中最重要的部分隐藏在链接后面(它可能会消失,然后答案变得毫无价值)。
  • @quickbug 链接坏了
  • @quickbug 链接已损坏!对于未来的答案,请确保您截取屏幕截图,并且您的答案包含整个内容,因为您永远不能真正依赖外部链接
【解决方案3】:

我有 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。

【讨论】:

  • 这是最好的解决方案
【解决方案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 内核。

【讨论】:

    【解决方案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】:

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

    【讨论】:

      【解决方案7】:
      1. 使用 Python2 获得 ipython notebook(在 Windows7 上)
      2. 使用pip install -U jupyter 升级到 Jupyter
      3. 安装 Python3
      4. 使用pip3 install jupyter 再次安装 Jupyter
      5. 使用ipython3 kernelspec install-self安装Python3内核
      6. 我终于得到了 2 个工作内核。

      【讨论】:

      • 终端消息建议使用“jupyter”而不是 ipython。虽然它仍然有效!
      • 是的,终于!如果没有ipython3 kernelspec install-self 命令,它只是用python3 内核代替了python2。比你。
      • 在第 6 步中运行 ipython 内核安装。ipython3 kernelspec install-self 不再工作,jupyter kernelspec install-self 已弃用。
      • 您在上述每个步骤中的PYTHONPATH 是什么?
      【解决方案8】:

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

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

      然后用pip3 安装jupyter pip3 install jupyter

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

      【讨论】:

        【解决方案9】:

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

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

        【讨论】:

          【解决方案10】:

          这在 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。
          【解决方案11】:

          我使用以下命令在 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 也是需要的。
          【解决方案12】:

          打开终端(或窗口的 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”。希望这会有所帮助。
          【解决方案13】:

          对于最新版本的 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 与您的问题相似吗?你解决了吗?
          【解决方案14】:
          sudo apt-get install python3-pip python3-dev
          pip3 install -U jupyter
          

          【讨论】:

            【解决方案15】:

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

            【讨论】:

              【解决方案16】:

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

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

              【讨论】:

                【解决方案17】:

                以下命令适用于我,在 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
                【解决方案18】:

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

                pip3 安装 jupyter

                【讨论】:

                  【解决方案19】:

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

                  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,会发生什么?
                  【解决方案20】:

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

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

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

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

                  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”的内核选项。 (此名称由您的 kernel.json 文件中的 display_name 条目决定。)
                  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。这还将在.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'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 包位置;对于 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 目录,看起来像这样:
                  {
                    "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】:

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

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

                  python3.7 -m notebook
                  

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

                  【讨论】:

                    【解决方案22】:

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

                    【讨论】:

                      【解决方案23】:

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

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

                      pip install notebook
                      

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

                      jupyter notebook
                      

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

                      【讨论】:

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

                      此答案解释了如何使用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 工作流程。注意这个帖子中的很多答案——它们会让你走上一条会导致很多痛苦和痛苦的道路。

                      【讨论】:

                        猜你喜欢
                        • 2018-03-28
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2015-05-16
                        • 2018-02-25
                        相关资源
                        最近更新 更多