python - Jupyter“500:内部服务器错误”;“ImportError:无法导入名称 ConverterMapping”
问题描述
我正在尝试在全新安装的 Ubuntu 19.04 上使用 Jupyter notebook。我已经完成了通常的安装步骤,但 Jupyter 不起作用。当我尝试打开笔记本时,我得到
500 : Internal Server Error
当我查看终端时,我看到 Jupyter 遇到了错误
ImportError: cannot import name ConverterMapping
我已经搜索并找到了有关 Jupyter 中内部服务器错误的其他原因的问题/答案,但我找不到解决 ConverterMapping 问题的方法。我已尝试卸载 ( pip uninstall ...
) 并重新安装 ( pip install --user ...
) 所有与 Jypyter 相关的软件包,但没有任何效果。
更新:
例行系统更新后,问题又回来了。这向我表明,删除已安装软件包的.local
目录pip
(然后重新安装)不一定是长期修复,因为自动更新似乎会导致问题再次出现。也有可能其他一些包(通过 apt 安装)虽然没有明确与 python 相关,但以某种方式改变了 python 环境,从而破坏了 Jupyter 笔记本。
任何想法或建议将不胜感激。
解决方案
(回答我自己的问题)
根据我的经验,这些问题通常是由通过安装的 python 包apt
与通过安装的包之间的兼容性问题引起的pip
。
不幸的是,我无法重建安装 jupyter/scipy/etc 环境所采取的一系列冗长步骤。某些包必须是通过 拉入的,apt
而其他包必须是通过 拉入的pip
,导致版本冲突。
这种方法最初解决了这个问题:
- 按照这个答案,我跑去
python -c "import site; print(site.USER_BASE)"
寻找 pip 安装--user
包的位置 - 对我来说,这是
~/.local
- 我开始
~/.local
消除~/.local_disabled
所有本地安装的软件包 - 此时,Jupyter 又开始工作了,(它一定是通过系统 python 安装的
apt
)。 - 我只添加了用户包的最小子集,并且会留意不兼容性。
- 我想避免通过 Jupyter/ipython 引入
apt
可能是将来避免此问题的更好方法。
后续系统更新后,问题又回来了
这似乎证实了问题是由于通过安装的 python 包apt
与通过pip
. 这一次,为了解决这个问题,我:
apt
通过(但不是随 Ubuntu 安装的核心系统的一部分)安装的已卸载 python 包。这主要包括 jupyter 及其许多依赖项。- 使用
pip install jupyter --user
. - 这是有效的(目前)。
(请随时编辑/评论/扩展此答案。)
推荐阅读
- javascript - Javascript 办公室添加:getAsync() 不起作用
- c# - 在 UWP 右下角添加“调整大小手柄”
- visual-studio-2017 - VS2017 消息:发布到选定的天蓝色虚拟机尚未启用
- .net - .Net 框架配置文件
- scala - 从 scala 库中获取相对路径(在开发该库时)
- python - 如何将keras中的参数设置为不可训练?
- python - Python 文本文档的相似性(无库)
- php - 将 url 的最后一部分保存在变量中
- python - Scrapy / 从 start_requests 函数获取数据以解析函数
- javascript - 无法在 Google Charts 表格代码中添加额外的行或列..(表格消失)