我正在使用google colaboratory用python教授数据科学,为了让笔记本只留给学生的特定课程,我想导入一些我们编码的基本方法,而不是给他们一个预先填好的大笔记本用这些方法来防止任何干扰。
如何在不在pip上发布这些方法的情况下导入这些方法?可以从github google-colaborary pip安装吗?
对我们来说,最好的选择是能够在Drive中获得代码并将模块上传到colab空间,就像我们使用csv文件一样,并使用标准导入。这可能吗?
答案 0 :(得分:7)
如何在不在pip上发布这些方法的情况下导入这些方法?能够 google-colaborary pip install from github?
是的,您可以通过在collab中运行bash命令(通过在命令中附加!
)来从github执行pip install。例如:
!pip install git+<github_link>
我们的最佳选择是能够在云端硬盘中获取代码 并将模块上传到colab空间,就像我们使用csv文件一样, 并使用标准导入。这可能吗?
这有点棘手但可以通过使用[google-drive-ocamlfuse][1]
在您的google协作实例上安装google-drive来完成。
您需要使用以下命令安装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}
然后使用以下方式安装Google驱动器:
!mkdir -p drive
!google-drive-ocamlfuse drive
之后,您可以使用以下方法检查装载是否成功:
!ls drive
应显示google云端硬盘中的所有文件。
答案 1 :(得分:3)
我有一个肮脏的把戏恰恰做到了。将我所有的代码打包在一个包中
!wget mysite/mypackage.py
from mypackage import *
类似地,如果mypackage具有依赖项,我可以获取一个zip文件并对其进行解压缩