7

我正在尝试在全新安装的 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 笔记本。

任何想法或建议将不胜感激。

4

3 回答 3

4

(回答我自己的问题)

根据我的经验,这些问题通常是由通过安装的 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.
  • 这是有效的(目前)。

(请随时编辑/评论/扩展此答案。)

于 2019-07-10T16:02:36.950 回答
2

我有类似的经历,找到了 Mrule的答案。删除/重命名.local也对我有用,但他的长期解决方案并不可悲。所以我挖了一点点来找出第一个解决方案为什么有效。

结果是在没有被删除和我删除的时候返回which jupyter。所以问题出在 pip 包中(由选项安装的包)。$HOME/.local/bin/jupyter.local/usr/bin/jupyter.localpip install --user jupyter

我以前做过sudo pip uninstall jupyter几次,但这并没有删除.local(见这里)中的包。您不必pip uninstall jupyter卸载sudo主目录中的那些(或手动删除它们)。我通过使用pip list | grep jupyter和找到它们来卸载系统中的任何其他与 jupyter 相关的包apt list | grep jupyter

最后通过sudo apt install jupyter. 现在它似乎正在工作。

底线是通过pip系统范围和主目录(.local)安装的软件包和通过安装的软件包apt以某种方式发生冲突(我找不到确切的原因)。

于 2019-12-07T17:00:38.930 回答
2

最安全的解决方案是创建一个虚拟环境并从中运行您的 jupyter。这清楚地将 pip 和 apt 的所有操作分开。它对我有用。我使用 Ubuntu

要创建虚拟环境,请运行:

1)sudo pip install --upgrade virtualenv (install virtualenv)

2)virtualenv  xyz --python=python3.7  (xyz is the name of the new virtual environment)

3) cd into the directory of xyz

4) source ./bin/activate 

5)pip install jupyter
于 2020-02-10T06:34:39.187 回答