Ipython: IPython Notebook 错误:加载笔记本时出错

创建于 2016-01-23  ·  8评论  ·  资料来源: ipython/ipython

在过去的几分钟内,我无法访问之前使用 Python3.4 创建的任何.ipynb文件。 我转到包含这些文件的子目录,输入

ipython3 notebook

当我单击某个.ipynb文件时,出现以下错误:

An unknown error occurred while loading this notebook. This version can load notebook formats v4 or earlier. See the server log for details.
[E 00:19:41.468 NotebookApp] Unhandled error in API request
    Traceback (most recent call last):
      File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/traitlets/traitlets.py", line 460, in get
        value = obj._trait_values[self.name]
    KeyError: 'db'
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/base/handlers.py", line 458, in wrapper
    result = yield gen.maybe_future(method(self, *args, **kwargs))
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tornado/gen.py", line 1008, in run
    value = future.result()
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tornado/concurrent.py", line 232, in result
    raise_exc_info(self._exc_info)
  File "<string>", line 3, in raise_exc_info
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/tornado/gen.py", line 282, in wrapper
    yielded = next(result)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/services/contents/handlers.py", line 124, in get
    path=path, type=type, format=format, content=content,
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/services/contents/filemanager.py", line 354, in get
    model = self._notebook_model(path, content=content)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/services/contents/filemanager.py", line 314, in _notebook_model
    self.mark_trusted_cells(nb, path)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/notebook/services/contents/manager.py", line 447, in mark_trusted_cells
    trusted = self.notary.check_signature(nb)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/nbformat/sign.py", line 220, in check_signature
    if self.db is None:
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/traitlets/traitlets.py", line 488, in __get__
    return self.get(obj, cls)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/traitlets/traitlets.py", line 467, in get
    value = self._validate(obj, dynamic_default())
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/nbformat/sign.py", line 127, in _db_default
    self.init_db(db)
  File "/opt/local/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/nbformat/sign.py", line 139, in init_db
    )""")
sqlite3.DatabaseError: database disk image is malformed

如何解决这个问题?

最有用的评论

笔记本签名数据库已损坏。 把它移开:

cd $(jupyter --data-dir)
mv nbsignatures.db nbsignatures.db.bak   # Or just rm it - there's probably no use keeping the corrupt file

我们正在努力捕获错误并在 jupyter/nbformat#32 中自动执行此操作。

完成此操作后,所有笔记本将再次不受信任。 这意味着在显示一些丰富的输出之前,您可能必须重新执行它们,或者从文件菜单手动信任它们。

所有8条评论

笔记本签名数据库已损坏。 把它移开:

cd $(jupyter --data-dir)
mv nbsignatures.db nbsignatures.db.bak   # Or just rm it - there's probably no use keeping the corrupt file

我们正在努力捕获错误并在 jupyter/nbformat#32 中自动执行此操作。

完成此操作后,所有笔记本将再次不受信任。 这意味着在显示一些丰富的输出之前,您可能必须重新执行它们,或者从文件菜单手动信任它们。

我的问题解决了

rm ~/Library/Jupyter/nbsignatures.db

谢谢

删除 ~/.ipython/profile_default/history_sqlite

这对我有帮助。

@KnightOfTheMoonlight我认为该文件名为“history.sqlite”而不是“history_sqlite”。

检查您工作环境中的可用空间!!!
当服务器没有空间时,我遇到了这个错误。

@takluyver我遇到了类似的问题,您的建议确实有效。 谢谢!

检查您工作环境中的可用空间!!!
当服务器没有空间时,我遇到了这个错误。

这也是我的问题。 谢谢你的提示! 有效!

首先在终端中运行以下命令:
sudo jupyter notebook --allow-root

然后一些 URL 会出现在终端中,比如:

http://localhost:8888/?token=f2704ecba4c88716337f33e79e13335380e25382603afb80

最后,将此 URL 复制并粘贴到浏览器的新选项卡中。 然后 jupyter 笔记本将在新选项卡中打开。

干杯!

此页面是否有帮助?
0 / 5 - 0 等级