不能使用Jupyter Notebook:jsonschema显然缺少

时间:2016-03-09 22:01:24

标签: python packages anaconda jupyter jupyter-notebook

使用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环境中的内完成了pip install jsonschemaconda install jsonschema以及pip install functools32conda install functools32无济于事;我发现几乎完全相同的错误,除非这次functools32被替换为_version

我重新安装了Anaconda,更新了所有软件包,创建了一个新环境,就像我创建这个软件一样,但我仍然遇到这个错误。我正在使用Ubuntu 15.10 32位。在大约一周前,我曾经能够使用这个环境没有问题。

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

9 个答案:

答案 0 :(得分:19)

我想我有一个解决方案。

我做了很多事情,从另一台有效的计算机上重新生成了我的环境(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/

答案 1 :(得分:2)

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

$ pip uninstall jsonschema
...

$ pip install jsonschema
...

答案 2 :(得分:1)

我遇到了同样的问题。

我通过运行此命令解决了它

conda install -c anaconda jsonschema

https://anaconda.org/anaconda/jsonschema

答案 3 :(得分:1)

我也遇到了同样的错误,上面提到的过程都对我无效,因此我检查了蟒蛇的文档,发现有用的东西

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

conda install jupyter

jupyter notebook

这对我有用,感谢anaconda文档

答案 4 :(得分:0)

从终端试试这个:

pip install ipython[notebook]

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

答案 5 :(得分:0)

使用conda虚拟环境时,我也发现了这个问题。我找到的解决方法是使用以下命令从python 3.6降级到python 3.5:

(env)/ location / of / my / code:conda install python \&lt; 3.6

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

Jupyter notebook format depends on the jsonschema package:

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

Please install it first 然后,我建议您运行给定的两个命令。它可以解决您的问题,也可以解决我的问题。

答案 8 :(得分:-1)

从终端尝试一下,它对我有用:

String sd = context.getExternalFilesDirs("")[1].getAbsolutePath();
mPath = sd.substring(1,sd.indexOf("/Android/"));