我正在尝试在全新安装的Ubuntu 19.04上使用Jupyter笔记本。我已经完成了通常的安装步骤,但是Jupyter无法正常工作。当我尝试打开笔记本时,我得到了
500 : Internal Server Error
当我在终端中查看时,我发现Jupyter遇到了错误
ImportError: cannot import name ConverterMapping
我已经在Jupyter中搜索并找到导致内部服务器错误的其他原因的问题/答案,但是我找不到解决ConverterMapping问题的方法。我曾尝试卸载(pip uninstall ...
)和重新安装(pip install --user ...
)所有与Jypyter相关的软件包,但没有效果。
任何想法或建议将不胜感激。
答案 0 :(得分: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
答案 1 :(得分:1)
我也有类似的经历,并找到了Mrule的答案。删除/重命名.local
也对我有用,但是他的长期解决方案并不令人遗憾。因此,我深入研究了第一个解决方案的工作原理。
结果是,当未删除which jupyter
时,$HOME/.local/bin/jupyter
返回了.local
,而当我删除时,返回了/usr/bin/jupyter
。因此问题出在pip软件包中(通过.local
选项安装在pip install --user jupyter
中的软件包)。
我之前曾经做过sudo pip uninstall jupyter
次,但这并没有删除.local
中的软件包(请参阅here)。您必须在没有pip uninstall jupyter
的情况下执行sudo
,才能卸载主目录中的文件(或手动删除它们)。我使用pip list | grep jupyter
和apt list | grep jupyter
在系统中找到了与jupyter相关的所有其他软件包,从而卸载了它们。
然后最终通过sudo apt install jupyter
重新安装了jupyter。现在它似乎正在工作。
最重要的是,通过pip
系统范围和主目录(.local
)安装的软件包和通过apt
安装的软件包存在某种冲突(我找不到确切的原因) )。
答案 2 :(得分:0)
(回答我自己的问题)
根据我的经验,这些问题通常是由通过apt
安装的python软件包与通过pip
安装的python软件包之间的兼容性问题引起的。
不幸的是,我无法重建安装jupyter / scipy / etc环境所需的冗长步骤。有些软件包必须通过apt
引入,而其他软件包则必须通过pip
引入,从而导致版本冲突。
我有部分解决方法:
python -c "import site; print(site.USER_BASE)"
来查找pip在哪里安装--user
软件包~/.local
~/.local
移至~/.local_disabled
以消除本地安装的所有 软件包apt
将它与系统python一起安装)。 apt
引入Jupyter / ipython可能是将来避免此问题的更好方法。 (请随时编辑/评论/扩展此答案。)