在Google colab上导入自己的ipynb文件

时间:2018-11-12 00:44:02

标签: python jupyter-notebook google-colaboratory

我正在使用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文件吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

您是否已将笔记本/ ipynb文件导入到Google Colab项目? 我将本地Jupyter笔记本中正在进行的工作迁移到Google Colab的方式是使用Github和Clouderizer。这种方法还使我可以在jupyter笔记本环境中进行工作,就好像我在本地进行工作一样,但可以立即将我的工作立即同步到Google Colab。另外,通过这种方法,我只需执行import <my own python/ipynb module>之类的操作,即可将模块.ipynb / .py导入正在处理的笔记本中。我建议使用此安装程序,而不要在Google Colab上使用有毛的Linux命令行。

这里是本教程,该课程介绍如何使用Clouderizer:Medium tutorial将笔记本从github轻松设置到Google Colab。

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

适用于Google Colab项目的Clouderizer

先决条件

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

设置Clouderizer项目

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