开发者问题收集

在 Google Colab 中操作后无法通过本地 Jupyter Notebook 打开大型 Jupyter Notebook 文件

2018-11-15
3632

我在 Google Colaboratory 中处理大型 Jupyter Notebook 文件后,很难在本地打开它。

我在 Google Colab 中编辑了一个相当大的 Jupyter Notebook 文件,大约有 230 个单元格。之后,它似乎已通过 Google 的备份和同步应用程序成功同步到我的本地计算机 (macOS 10.14.1)。但现在,当我尝试 通过我的 Anaconda Jupyter Notebook 在本地打开文件时,收到以下错误:

Notebook failed to load

The error was:
TypeError: Cannot read property 'length' of undefined
See the error console for details.
The notebook also failed validation:

Notebook validation failed: 'outputs' is a required property:
{
 "metadata": {
  "id": "t1y7q2Gnm3QT",
  "colab_type": "code",
  "colab": {
   "resources": {
    "http://localhost:8080/static/components/requirejs/require.js": {
     "data": ...(personal data)




# Name                    Version                   Build  Channel
ipython                   6.1.0            py36hf612aae_1  
ipython_genutils          0.2.0            py36h241746c_0  

在其他计算机上的 Google Colab 中在线编辑许多其他 .ipynb 文件后,我可以在本地打开它们。但是其他文件的单元格和代码较少。那么 Google Colab 是否存在某种大小限制?

我的 Jupyter 版本是 4.3.0。

任何帮助都非常感谢。

2个回答

感谢@AmiF 关于输出字段问题的意见,我找到了一个简单的解决方案来满足我的需求:

在 Google Colab 中,删除所有输出(>编辑 >清除所有输出)。确保文件已保存在 Google Colab 中(自动保存,或通过 >文件 >保存保存)。

一旦它同步到我的电脑,我就可以毫无问题地打开它。

Imo Ily
2018-11-21

出于各种原因,Colab 有时会将大型单元格输出存储在单独的 Drive 对象中。当您下载 .ipynb 文件时,Colab 会直接将其存储在 Drive 中,此类单元格没有输出字段,而是具有 metadata.colab.output_embedded_pa​​ckage_id 字段(实现细节,不要依赖此特定名称)。Jupyter 因缺少输出字段而出错。

您可以通过在 colab UI 中使用 File->Download .ipynb 来解决此问题。

Ami F
2018-11-16