【问题处理小知识】jupyter notebook报错:500 internal server error的几种解决办法整理

【问题处理小知识】jupyter notebook报错:500 internal server error的解决办法整理

问题描述

前一天jupyter notebook可以正常使用,第二天打开时就报错,如下:

复制代码
500 internal server error

查看后台,会看到如下类似的错误:

bash 复制代码
[E 17:53:52.034 NotebookApp] Uncaught exception GET /tree (::1)
    HTTPServerRequest(protocol='http', host='localhost:8888', method='GET', uri='/tree', version='HTTP/1.1', remote_ip='::1', headers={'Accept-Language': 'en-US,en;q=0.8,es;q=0.6', 'Accept-Encoding': 'gzip, deflate, sdch', 'Host': 'localhost:8888', 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36', 'Connection': 'keep-alive', 'Upgrade-Insecure-Requests': '1'})
    Traceback (most recent call last):
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/web.py", line 1443, in _execute
        result = method(*self.path_args, **self.path_kwargs)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tornado/web.py", line 2800, in wrapper
        return method(self, *args, **kwargs)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/notebook/tree/handlers.py", line 50, in get
        terminals_available=self.settings['terminals_available'],
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/notebook/base/handlers.py", line 302, in render_template
        template = self.get_template(name)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/notebook/base/handlers.py", line 298, in get_template
        return self.settings['jinja2_env'].get_template(name)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 719, in get_template
        return self._load_template(name, self.make_globals(globals))
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 693, in _load_template
        template = self.loader.load(self, name, globals)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/loaders.py", line 127, in load
        code = environment.compile(source, name, filename)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg/jinja2/environment.py", line 493, in compile
        self.handle_exception(exc_info, source_hint=source)
      File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/notebook/templates/tree.html", line 8, in template
        data-base-url="{{base_url | urlencode}}"
    TemplateAssertionError: no filter named 'urlencode'
[E 17:53:52.819 NotebookApp] {
      "Accept-Language": "en-US,en;q=0.8,es;q=0.6",
      "Accept-Encoding": "gzip, deflate, sdch",
      "Host": "localhost:8888",
      "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
      "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.112 Safari/537.36",
      "Connection": "keep-alive",
      "Upgrade-Insecure-Requests": "1"
    }
[E 17:53:52.819 NotebookApp] 500 GET /tree (::1) 874.29ms referer=None

处理方法总结如下文。

处理方法汇总

在处理问题前,建议先升级pip,否则部分包可能会安装出错。pip升级命令如下:

bash 复制代码
python.exe -m pip install --upgrade pip

下面列举几个方法,总有一个方法能适合你,建议首先尝试第一个方法,如果不行再尝试其他方法。

方法一

升级jupyterhub和nbconvert

bash 复制代码
pip install --upgrade jupyterhub
pip install --upgrade --user nbconvert

方法二

升级ipython

bash 复制代码
pip install --upgrade "ipython[all]"

方法三

安装conda-forge和jupyter_contrib_nbextensions

bash 复制代码
conda install -c conda-forge jupyter_contrib_nbextensions

其他情况

如果在利用以上方法解决掉500 internal server error错误后,但是Jupyter notebook连接却无反应,始终卡在connecting to kernel步骤,无法执行cell,那么可能是遇到了jupyter notebook的一个BUG,将jupyter notebook升级到5.7.5即可。升级命令如下:

bash 复制代码
pip install jupyter notebook==5.7.5
相关推荐
猿界零零七1 天前
pip install mxnet 报错解决方案
python·pip·mxnet
不只会拍照的程序猿1 天前
《嵌入式AI筑基笔记02:Python数据类型01,从C的“硬核”到Python的“包容”》
人工智能·笔记·python
Jay_Franklin1 天前
Quarto与Python集成使用
开发语言·python·markdown
Oueii1 天前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
weixin_426689201 天前
vscode C语言编译环境搭建(单个文件)
c语言·ide·vscode
2401_831824961 天前
使用Fabric自动化你的部署流程
jvm·数据库·python
njidf1 天前
Python日志记录(Logging)最佳实践
jvm·数据库·python
@我漫长的孤独流浪1 天前
Python编程核心知识点速览
开发语言·数据库·python
宇擎智脑科技1 天前
A2A Python SDK 源码架构解读:一个请求是如何被处理的
人工智能·python·架构·a2a
2401_851272991 天前
实战:用Python分析某电商销售数据
jvm·数据库·python