【问题标题】:Can't use Jupyter Notebook: jsonschema apparently missing无法使用 Jupyter Notebook:显然缺少 jsonschema
【发布时间】:2016-06-24 12:47:16
【问题描述】:

使用 Anaconda 环境时,我无法启动 Jupyter 在笔记本中工作。我可以在没有环境的情况下这样做,但我需要能够使用环境。这是我所做的以及我得到的错误:

ben@ben-K60IJ:~/surveillance_sound_classifier/surveillance_sound_classifier$ source activate EECS352
discarding /home/ben/anaconda/bin from PATH
prepending /home/ben/anaconda/envs/EECS352/bin to PATH
(EECS352)ben@ben-K60IJ:~/surveillance_sound_classifier/surveillance_sound_classifier$ jupyter notebook
Traceback (most recent call last):
  File "/home/ben/anaconda/envs/EECS352/bin/jupyter-notebook", line 4, in <module>
import notebook.notebookapp
  File "/home/ben/anaconda/envs/EECS352/lib/python2.7/site-packages/notebook/notebookapp.py", line 61, in <module>
from .services.contents.manager import ContentsManager
  File "/home/ben/anaconda/envs/EECS352/lib/python2.7/site-packages/notebook/services/contents/manager.py", line 16, in <module>
from nbformat import sign, validate, ValidationError
  File "/home/ben/anaconda/envs/EECS352/lib/python2.7/site-packages/nbformat/__init__.py", line 33, in <module>
from .validator import validate, ValidationError
  File "/home/ben/anaconda/envs/EECS352/lib/python2.7/site-packages/nbformat/validator.py", line 21, in <module>
raise ImportError(str(e) + verbose_msg)
ImportError: No module named functools32

Jupyter notebook format depends on the jsonschema package:

    https://pypi.python.org/pypi/jsonschema

Please install it first.

是的,我在 EECS352 环境中 within 完成了 pip install jsonschemaconda install jsonschema AND pip install functools32conda install functools32 无济于事;我遇到了一个几乎相同的错误,除了这一次,functools32 被替换为_version

我已经重新安装了 Anaconda,更新了它的所有软件包,以与我创建此环境相同的方式创建了一个新环境,但仍然出现此错误。我正在使用 Ubuntu 15.10 32 位。直到大约一周前,我才能毫无问题地使用这个环境。

如果这是重复的,请指出原件;但是,我还没有找到任何看起来真正相关的东西。唯一可能相关的是,在我修改了一些.conf 文件后确实弹出了这个错误,因为我在使用sudo apt-get upgrade 更新我的计算机软件时遇到了问题。我不记得我做了什么以及对哪个文件做了什么,但如果它可能是这个问题的根源,我可以花一些时间尝试追踪它。请让我知道我是否应该花时间来做这件事,我会的。

【问题讨论】:

  • 您是否在 EECS352 的 virtualenv 中安装了要求?
  • “要求”是什么意思?我正在使用大约一周前工作的完全相同的环境。环境没有任何变化。
  • 这个意义上的要求意味着jsonschema包和functools32
  • 哦,抱歉,我没有说明我在 within 中同时执行了 pipconda installjsonschemafunctools32 EECS352 环境。我会更新我的问题,谢谢。
  • 哦,我也有同样的问题。几周前我安装了 jupyter。但是今天,使用 anaconda,它无法启动相同的 jsonschema 库。

标签: python jupyter-notebook anaconda package jupyter


【解决方案1】:

我想我有一个解决办法。

我做了很多事情,从另一台工作的计算机上重新生成了我的 env (anaconda env),但没有成功。

我认为成功的是将 jsonschema 升级到 2.5.1

这是我从“坏”的 jupyter env 到工作的 jupyter env 的步骤。

祝你好运,如果不起作用,我会发布笔记本*相关版本。

>conda upgrade pip
pip:        8.1.0-py27_0  --> 8.1.1-py27_0
setuptools: 20.2.2-py27_0 --> 20.3-py27_0 

>pip install functools32
Downloading functools32-3.2.3-2.tar.gz    
Successfully installed functools32-3.2.3.post2

>jupyter notebook
ImportError: No module named _version
Jupyter notebook format depends on the jsonschema package:
    https://pypi.python.org/pypi/jsonschema
Please install it first.

>pip install jsonschema
Requirement already satisfied

>pip install --upgrade jsonschema
Collecting jsonschema
Downloading jsonschema-2.5.1-py2.py3-none-any.whl
Successfully uninstalled jsonschema-2.4.0
Successfully installed jsonschema-2.5.1

>jupyter notebook
[I 16:45:41.708 NotebookApp] Writing notebook server cookie secret to 
[I 16:45:42.134 NotebookApp] Serving notebooks from local directory: 
[I 16:45:42.134 NotebookApp] 0 active kernels 
[I 16:45:42.134 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/

【讨论】:

  • 奇怪的是我使用conda list -e 命令克隆了一个工作环境。我有旧的 jsonschema (2.4.0)。击败我哪里是冲突或 anaconda 未列出的其他依赖项。在工作环境中,我使用python setup.py 直接从github 安装了东西。我不知道 conda/pip monitor/如何知道安装或未安装什么,此时我不敢问:)
【解决方案2】:

我也遇到了同样的错误,上面提到的程序都不适合我,所以我检查了 anaconda 的文档并发现了一些有用的东西

conda install -c conda-forge/label/cf201901 jsonschema

conda install jupyter

jupyter notebook

这对我有用,感谢 anaconda 文档

【讨论】:

    【解决方案3】:

    重新安装jsonschema解决我的问题:

    $ pip uninstall jsonschema
    ...
    
    $ pip install jsonschema
    ...
    

    【讨论】:

      【解决方案4】:

      如果上述任何解决方案都不起作用,请在您的 anaconda 提示符中尝试:首先运行conda update -n root conda,以便您安装最新的 conda 版本。然后运行conda update --all这会将当前环境中的所有包更新到最新版本。 即使在安装 jsonschema 之后,您的 Jupyter Notebook 也可能无法运行并给您错误:

      Jupyter notebook 格式依赖于 jsonschema 包:
      https://pypi.python.org/pypi/jsonschema
      请先安装

      那么我建议你运行给定的两个命令。它会解决你的问题,就像解决我的问题一样。

      【讨论】:

        【解决方案5】:

        从终端试试这个:

        pip install ipython[notebook]
        

        它对我有用,如果问题仍然存在,请告诉我。

        【讨论】:

        • Ipython 已弃用 3d 并称为 jupyter
        【解决方案6】:

        我遇到了同样的问题。

        我通过运行这个命令解决了它

        conda install -c anaconda jsonschema
        

        https://anaconda.org/anaconda/jsonschema

        【讨论】:

          【解决方案7】:

          我通过卸载并重新安装 python 3.7 解决了这个问题

          【讨论】:

            【解决方案8】:

            从终端试试这个,它对我有用:

            pip install --upgrade pyrsistent
            

            【讨论】: