【问题标题】:Jupyter notebook launch errorJupyter 笔记本启动错误
【发布时间】:2018-05-04 07:51:54
【问题描述】:

当我尝试运行命令jupyter-notebook 时,我收到以下错误:

`Traceback (most recent call last):
  File "/home/leo/anaconda2/bin/jupyter-notebook", line 7, in <module>
    from notebook.notebookapp import main
  File "/usr/lib/python3/dist-packages/notebook/notebookapp.py", line 31, in <module>
    from zmq.eventloop import ioloop
  File "/usr/lib/python3/dist-packages/zmq/__init__.py", line 34, in <module>
    from zmq import backend
  File "/usr/lib/python3/dist-packages/zmq/backend/__init__.py", line 40, in <module>
    reraise(*exc_info)
  File "/usr/lib/python3/dist-packages/zmq/backend/__init__.py", line 27, in <module>
    _ns = select_backend(first)
  File "/usr/lib/python3/dist-packages/zmq/backend/select.py", line 26, in select_backend
    mod = __import__(name, fromlist=public_api)
  File "/usr/lib/python3/dist-packages/zmq/backend/cython/__init__.py", line 6, in <module>
    from . import (constants, error, message, context,
ImportError: cannot import name constants

我遇到的许多解决方案都需要卸载并重新安装 pyzmq 包(通过 pip、conda、apt install;我都试过了)。但这对我不起作用。

但是,看看我得到的错误,我认为第二行有问题,正是在这里:"/usr/lib/python3/dist-packages/notebook/notebookapp.py"。我拥有的两个 Python 版本之间似乎存在一些冲突。

我的 PC 上安装了适用于 Python 2.7 的 Anaconda,但最近我不得不安装适用于 Python 3.x 的 Spyder。可能是安装后某些东西损坏了?

我已经尝试过的:

  • 卸载/重新安装 pyzmq
  • 卸载/重新安装 jupyter
  • 尝试运行jupyter kernelspec list,但遇到了类似的错误(这让我认为实际上存在冲突):

    Traceback (most recent call last): File "/home/leo/anaconda2/bin/jupyter-kernelspec", line 7, in <module> from jupyter_client.kernelspecapp import KernelSpecApp File "/usr/lib/python3/dist-packages/jupyter_client/__init__.py", line 4, in <module> from .connect import * File "/usr/lib/python3/dist-packages/jupyter_client/connect.py", line 22, in <module> import zmq File "/usr/lib/python3/dist-packages/zmq/__init__.py", line 34, in <module> from zmq import backend File "/usr/lib/python3/dist-packages/zmq/backend/__init__.py", line 40, in <module> reraise(*exc_info) File "/usr/lib/python3/dist-packages/zmq/backend/__init__.py", line 27, in <module> _ns = select_backend(first) File "/usr/lib/python3/dist-packages/zmq/backend/select.py", line 26, in select_backend mod = __import__(name, fromlist=public_api) File "/usr/lib/python3/dist-packages/zmq/backend/cython/__init__.py", line 6, in <module> from . import (constants, error, message, context, ImportError: cannot import name constants


编辑:

我已经运行了命令

pip3 uninstall jupyter

正如 Sangram Gaikwad 建议的那样,所以现在我不再使用错误的 jupyter 笔记本了。但是,如果我尝试执行jupyter-notebook,现在又会出现另一个错误:

Traceback (most recent call last):
  File "/home/leo/anaconda2/bin/jupyter-notebook", line 7, in <module>
    from notebook.notebookapp import main
  File "/home/leo/anaconda2/lib/python2.7/site-packages/notebook/__init__.py", line 25, in <module>
    from .nbextensions import install_nbextension
  File "/home/leo/anaconda2/lib/python2.7/site-packages/notebook/nbextensions.py", line 27, in <module>
    from jupyter_core.utils import ensure_dir_exists
ImportError: cannot import name ensure_dir_exists

我尝试了什么:

  • conda update jupyter_core jupyter_client(表示已经安装)

  • conda uninstall jupyter notebook,然后是conda install jupyter notebook(仍然报同样的错误)

【问题讨论】:

    标签: python jupyter-notebook


    【解决方案1】:

    我也遇到过同样的问题。许多帖子建议运行以下两个命令来修复它:
    pip3 uninstall pyzmq

    pip3 install pyzmq

    但是,真正对我有用的是运行这个命令:

    pip3 install --upgrade pyzmq jupyterlab jupyter --force-reinstall

    【讨论】:

      【解决方案2】:

      您的 anaconda 环境中似乎没有更新/安装 jupyter notebook 和 pyzmq 包。

      错误堆栈显示您正在使用安装在根 python3 中的 jupyter notebook(存在于/usr/bin/python3)而不是 anaconda python3(存在于/home/leo/anaconda2/bin)。

      从回溯堆栈中可以明显看出 /usr/lib/python3/dist-packages/jupyter_client/__init__.py /usr/lib/python3/dist-packages/zmq/__init__.py

      我的解决方案:

      • 尝试使用 python3。
      • 删除已安装的 anaconda2 (sudo rm -rf /home/leo/anaconda2)
      • 卸载所有现有的 jupyter notebook、jupyter_client 和 pyzmq (sudo pip uninstall notebook jupyter_client pyzmq)
      • 安装 anaconda3 (with python3) 然后使用 conda 安装 jupyter notebook。 (conda install notebook)

      【讨论】:

      • 感谢您的提示,现在我又遇到了一个错误。我编辑了问题
      • @leqo 请使用 anaconda3 (with python3)。最新的 jupyter notebook 版本不支持 python2 (anaconda2)。
      • 嗯,几天前一切都很好(我有 Python 2 和 Python 3 核心的 Jupyter notebook),所以我认为必须有一个解决方案
      【解决方案3】:

      从您的个人资料中,我看到您是 Ubuntu 用户。 jupyter-notebook 软件包可以从 Ubuntu 17.04 及更高版本中的默认 Ubuntu 存储库安装。如果您使用的是 Ubuntu 17.10 或 Ubuntu 18.04 LTS,则可以尝试此答案。如果您还没有使用 Ubuntu 18.04,我认为在 Ubuntu 18.04 中安装 Anaconda 并没有多大优势。

      要在 Ubuntu 20.04 及更高版本中安装 Jupyter Notebook,请打开终端并输入:

      sudo apt install jupyter-notebook jupyter 
      

      要在 Ubuntu 18.04-19.10 中安装 Jupyter Notebook,请打开终端并输入:

      sudo apt install python3-notebook jupyter jupyter-core python-ipykernel
      

      python-ipykernel 是在 Jupyter Notebook 中运行 Python 2.x 程序所必需的,否则它仅支持 Python 3.x。

      要启动笔记本服务器,请运行以下命令:

      jupyter notebook
      

      您应该会看到 Jupyter Notebook 在您的网络浏览器中打开。

      要在 Ubuntu 17.04 和 17.10 中安装 Jupyter Notebook,请打开终端并输入:

      sudo apt install jupyter-notebook jupyter-core python-ipykernel 
      

      【讨论】:

      • 我尝试了您的建议,但没有奏效。执行pip3 uninstall jupyter 后,我得到一个不同的错误(我编辑了问题btw)
      • 这就是为什么我告诉你 Anaconda 在 Ubuntu 中不值得。几乎所有来自 Anaconda 的相同软件包都在 18.04 默认存储库中。 Anaconda 以无法找到 conda 未安装的任何包的路径而闻名,因此您必须手动将 path 添加到每个 Python 可执行文件,否则 Anaconda 将无法找到它。 Anaconda 向您推销它比 Ubuntu 默认存储库更易于使用的想法,但从长远来看,在 Ubuntu 中使用 Anaconda 要困难得多。
      猜你喜欢
      • 1970-01-01
      • 2021-04-14
      • 2018-10-07
      • 1970-01-01
      • 2018-10-05
      • 2020-05-24
      • 1970-01-01
      • 2018-09-01
      • 1970-01-01
      相关资源
      最近更新 更多