是否可以将我自己的模块导入google-colaboratory笔记本?

Pab*_*cia 7 google-colaboratory

我正在使用google colaboratory用python教授数据科学,为了让笔记本只留给学生的特定课程,我想导入一些我们编码的基本方法,而不是给他们一个预先填充这些方法的大笔记本防止任何分心.

如何导入这些方法而不在pip上发布它们?可以从github google-colaborary pip安装吗?

对我们来说最好的选择是能够在Drive中获得代码并将模块上传到colab空间,就像我们使用csv文件一样,并使用标准导入.那可能吗?

Ank*_*kan 8

如何导入这些方法而不在pip上发布它们?可以从github google-colaborary pip安装吗?

是的,您可以通过!在collab中运行bash命令(通过附加到命令)来从github执行pip install .例如:

!pip install git+<github_link>
Run Code Online (Sandbox Code Playgroud)

对我们来说最好的选择是能够在Drive中获得代码并将模块上传到colab空间,就像我们使用csv文件一样,并使用标准导入.那可能吗?

这有点棘手但可以通过在谷歌协作实例上使用google-drive安装来完成[google-drive-ocamlfuse][1].

您需要使用以下命令安装ocamlfuse并获取Google帐户的权限:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令挂载谷歌驱动器:

!mkdir -p drive
!google-drive-ocamlfuse drive
Run Code Online (Sandbox Code Playgroud)

之后,您可以使用以下命令检查安装是否成功:

!ls drive
Run Code Online (Sandbox Code Playgroud)

这应该显示您的谷歌驱动器中的所有文件.


Ser*_*ero 6

我有一个肮脏的技巧可以做到这一点。将我所有的代码放在一个包中,我可以做到

!wget mysite/mypackage.py
from mypackage import *
Run Code Online (Sandbox Code Playgroud)

同样,如果 mypackage 有依赖项,我可以 wget 一个 zipfile 并 !unzip 它