升级包后Jupyter Notebook无法运行,除降级jsonschema外还有其他方案吗?
解决方案:Python3.7下Jupyter启动失败(jsonschema相关报错)
针对你遇到的问题,除了降级到jsonschema==3.0.2,还有以下几个可行的解决思路:
1. 修复虚拟环境的路径问题(根本解决)
从报错信息的最后一行可以看到,系统找不到的路径末尾带有空格:
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\Users\user\Documents\Python\jupyter_project\ '
这个空格大概率是创建虚拟环境时路径输入错误导致的,你可以按以下步骤修复:
- 删除当前有问题的虚拟环境:
pipenv --rm - 检查你的项目文件夹名称,确保路径没有末尾空格(比如把
jupyter_project重命名为jupyter_project) - 重新创建虚拟环境并安装Jupyter:
pipenv install jupyter
2. 锁定jsonschema的兼容版本范围
如果你不想降级到3.0.2,可以在Pipfile中指定支持Python3.7的jsonschema版本范围,选择3.x系列中仍兼容Python3.7的版本:
在Pipfile的[packages]部分添加:
jsonschema = ">=3.0.2,<4.0"
然后运行pipenv update同步依赖,这样既可以使用较新的3.x版本,又能避开不支持Python3.7的4.x+版本。
3. 临时修改jsonschema的初始化文件(应急方案)
如果你需要快速解决问题,可以手动修改虚拟环境中jsonschema的初始化文件,绕开importlib的导入逻辑:
- 找到虚拟环境中的
jsonschema/__init__.py文件,路径类似:c:\users\user\.virtualenvs\jupyter_project-rx9grp37\lib\site-packages\jsonschema\__init__.py - 将文件中的代码替换回旧版本的写法:
from pkg_resources import get_distribution __version__ = get_distribution(__name__).version
注意:这个方法是临时的,下次更新jsonschema时会被覆盖,仅作为应急使用。
内容的提问来源于stack exchange,提问作者Gabor
相关产品推荐
相关产品推荐

