【问题标题】:import its own ipynb files on google colab在 google colab 上导入自己的 ipynb 文件
【发布时间】:2019-04-14 17:36:33
【问题描述】:

我正在使用 google colab 使用 jupyter notebook(所有文件都在驱动器中)。我有 2 个文件:Exploratory_Data_Analysis.ipynb 和 PCA.ipynb。 我想导入以在第二个中使用来自第一个的数据。 仅在本地使用 jupyter 笔记本(不使用 google colaboratory),只需执行以下操作即可导入:

!pip install import-ipynb
import import_ipynb
import Exploratory_Data_Analysis as eda

但是使用 google colab 我尝试了以下方法:

!pip install import-ipynb
import import_ipynb

!pip install -U -q PyDrive
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
from google.colab import auth
from oauth2client.client import GoogleCredentials
import os
import pandas as pd
auth.authenticate_user()
gauth = GoogleAuth()
gauth.credentials = GoogleCredentials.get_application_default()
drive = GoogleDrive(gauth)

listed = drive.ListFile({'q': "'1CXqv7-PZmYrWes4MOk' in 
parents and trashed=false"}).GetList()
for file in listed:
    print('title {}, id {}'.format(file['title'], file['id']))

eda = os.path.join(download_path, 'Exploratory_Data_Analysis.ipynb')
temp_eda = drive.CreateFile({'id': '1YpDhXGeJVtzuxUJS5gKsUbm'})
temp_eda.GetContentFile(eda)

import Exploratory_Data_Analysis

得到这个:

importing Jupyter notebook from Exploratory_Data_Analysis.ipynb
NotJSONError: Notebook does not appear to be JSON: ''...

还有其他方法可以在google colab上导入自己的ipynb文件吗?

【问题讨论】:

    标签: python jupyter-notebook google-colaboratory


    【解决方案1】:

    您是否已成功将 notebook/ipynb 文件导入到 Google Colab 项目中? 我将本地 jupyter-notebook 中正在进行的工作迁移到 Google Colab 的方式是使用 Github 和 Clouderizer。这种方法还允许我在 jupyter notebook 环境中工作,就好像我在本地进行但能够同步我的工作到 Google Colab 立即。此外,此方法允许我将模块 .ipynb/.py 导入到我正在处理的笔记本中,只需执行import <my own python/ipynb module> 之类的操作即可。我会推荐这种设置,而不是在 Google Colab 上使用毛茸茸的 linux 命令行。

    这里是如何使用 Clouderizer 从 github 轻松设置 notebook 到 Google Colab 的教程:Medium tutorial

    基本上,这些是您使用 Clouderizer 设置 ipynb 笔记本以及数据集文件夹所需的步骤:

    Google Colab 项目的 Clouderizer

    先决条件

    1. 注册 google/gmail 帐户
    2. 注册Clouderizer account [链接]
    3. 在您的 github 上创建一个存储库并将您的项目(所有 ipynb、py 模块,甚至数据集(如果

    设置 Clouderizer 项目

    1. 登录到 Clouderizer 控制台。首次登录时,系统会提示您将 Google Drive 与 Clouderizer 链接。按照屏幕上的说明进行操作。如果它没有提示链接,您可以通过转到 Clouderizer 仪表板-> 侧边栏菜单-> Clouderizer Drive 来配置您的 Google Drive。 Clouderizer 将在您的 Google Drive 中设置一个名为“clouderizer”的文件夹,以包含您的 ipynb 项目(无论是机器学习项目还是任何项目)
    2. 返回到 Clouderizer 仪表板。然后单击新建项目。当您按照说明进行操作时,您可以选择加载包含您打算上传到 Google Colab 的 ipynb 工作的整个 github 项目。
    3. 在第 5 步中,您可以通过指定数据集的 URL(例如,来自 kaggle 数据集 URL)来包含要处理的其他数据集。您还可以选择并指定是否要通过为数据集、主要代码/模块和输出文件设置单独的文件夹来重构您的项目。
    4. 接下来,前往 Google Colab/在 Google 云端硬盘的任何位置创建一个 Google Colab 文件,然后执行:!wget NS -content disposition 'https://to_whatever_link_you_get_to_console'
    5. 最后,返回 Clouderizer 仪表板并检查您的项目环境是否已经在运行并同步到 Google Colab。然后单击该仪表板中的 jupyter notebook 图标,就在您提供的项目的标题名称旁边。现在,您可以像在本地机器上一样开始进行机器学习或任何您所做的工作,然后立即在 Google Colab 上同步。
    6. 最后,您将能够验证您的 .ipynb 是否可以工作,并且也能够在 Google Colab 中导入模块/数据集。只需返回 Google Drive->clouderizer 文件夹->您的项目。然后尝试运行,看看是否一切正常,就像在 jupyter notebook 中一样。

    【讨论】:

    • 您应该将此迁移的步骤放在答案中,因为它是不完整的。
    • @MatthieuBrucher 我会马上做的。
    【解决方案2】:

    下面的代码非常适合我。 1.将所有ipynb文件复制到colab的一个文件夹中 2.从colab分享ipynb文件,见链接: https://www.pingshiuanchua.com/blog/post/importing-your-own-python-module-or-python-file-in-colaboratory 3.然后按照以下步骤操作:

    !pip install import-ipynb
    import import_ipynb
    # Install the PyDrive wrapper & import libraries.
    # This only needs to be done once per notebook.
    !pip install -U -q PyDrive
    from pydrive.auth import GoogleAuth
    from pydrive.drive import GoogleDrive
    from google.colab import auth
    from oauth2client.client import GoogleCredentials
    
    # Authenticate and create the PyDrive client.
    # This only needs to be done once per notebook.
    auth.authenticate_user()
    gauth = GoogleAuth()
    gauth.credentials = GoogleCredentials.get_application_default()
    drive = GoogleDrive(gauth)
    
    # Copy the link and remove the front part of the link (i.e. https://drive.google.com/open?id=) to get the file ID.
    your_module = drive.CreateFile({'id':'eyetgd1zyxwvutsrqponmlkjihgfedcba'})
    your_module.GetContentFile('myfile.ipynb')
    import myfile
    

    【讨论】:

    • 按照你的步骤,我可以导入笔记本,但我不能使用里面的任何东西:'(
    猜你喜欢
    • 2018-11-10
    • 1970-01-01
    • 2013-12-09
    • 2021-10-06
    • 1970-01-01
    • 2018-07-20
    • 2021-06-06
    • 2022-08-06
    • 1970-01-01
    相关资源
    最近更新 更多