首页 > 解决方案 > 软件包升级后 Jupyter Notebook 不工作

问题描述

我创建了一个新的虚拟环境并通过运行安装了 jupyter notebook pipenv install jupyter。我现在无法运行jupyter notebook

Traceback (most recent call last):
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\jsonschema\__init__.py", line 31, in <module>
    from importlib import metadata
ImportError: cannot import name 'metadata' from 'importlib' (C:\anaconda\Lib\importlib\__init__.py)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\anaconda\Lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\anaconda\Lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\user\.virtualenvs\jupyter_project-RX9gRp37\Scripts\jupyter-notebook.EXE\__main__.py", line 4, in <module>
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\notebook\notebookapp.py", line 80, in <module>
    from .services.contents.manager import ContentsManager
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\notebook\services\contents\manager.py", line 17, in <module>
    from nbformat import sign, validate as validate_nb, ValidationError
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\nbformat\__init__.py", line 33, in <module>
    from .validator import validate, ValidationError
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\nbformat\validator.py", line 12, in <module>
    from jsonschema import ValidationError
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\jsonschema\__init__.py", line 33, in <module>
    import importlib_metadata as metadata
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\importlib_metadata\__init__.py", line 547, in <module>
    __version__ = version(__name__)
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\importlib_metadata\__init__.py", line 509, in version
    return distribution(distribution_name).version
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\importlib_metadata\__init__.py", line 482, in distribution
    return Distribution.from_name(distribution_name)
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\importlib_metadata\__init__.py", line 183, in from_name
    dist = next(dists, None)
  File "c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\importlib_metadata\__init__.py", line 452, in <genexpr>
    return (item for item in root.iterdir()
  File "C:\anaconda\Lib\pathlib.py", line 1090, in iterdir
    for name in self._accessor.listdir(self):
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\Users\\user\\Documents\\Python\\jupyter_project\\ '

我正在运行 python 3.7。

该问题似乎是由 jsonschema 工作方式的最近变化引起的。在 3.0.2 版本中,它似乎按预期工作。

改变的是这个(jsonschema/__init__.py):

前:

from pkg_resources import get_distribution
__version__ = get_distribution(__name__).version

后:

try:
    from importlib import metadata
except ImportError: # for Python<3.8
    import importlib_metadata as metadata
__version__ = metadata.version("jsonschema")

除了降级还有其他方法可以解决这个问题jsonschema==3.0.2吗?

谢谢

标签: pythonjupyter-notebook

解决方案


在您的环境中升级您的jsonschema版本

在 conda 环境中 conda upgrade jsonschema

在 pip 环境中 pip install --upgrade jsonschema

这对我有用!


推荐阅读