Jupyter notebook 在Google Colab中导入.py文件
有没有办法将我的代码上传到.py文件中并导入到colab代码单元格中Jupyter notebook 在Google Colab中导入.py文件,jupyter-notebook,ipython,google-colaboratory,Jupyter Notebook,Ipython,Google Colaboratory,有没有办法将我的代码上传到.py文件中并导入到colab代码单元格中 我发现的另一种方法是创建本地Jupyter笔记本,然后将其上载到Colab,这是唯一的方法吗?您可以先保存它,然后导入它 from google.colab import files src = list(files.upload().values())[0] open('mylib.py','wb').write(src) import mylib 更新(2018年11月):现在您可以通过 单击[>]打开左侧窗格 选择“
我发现的另一种方法是创建本地Jupyter笔记本,然后将其上载到Colab,这是唯一的方法吗?您可以先保存它,然后导入它
from google.colab import files
src = list(files.upload().values())[0]
open('mylib.py','wb').write(src)
import mylib
更新(2018年11月):现在您可以通过
- 单击[>]打开左侧窗格
- 选择“文件”选项卡
- 单击[upload]并选择您的[mylib.py]
- 导入mylib
- 在驱动器中存储
mylib.py
- 打开一个新的Colab
- 打开(左)侧窗格,选择文件
- 单击
,然后装载驱动器
连接到谷歌驱动器
- 通过
复制它!cp-drive/MyDrive/mylib.py.
导入mylib
!cp /content/drive/ai/plant_seedlings.tar.gz /usr/local/lib/python3.6/dist-packages/
!cd /usr/local/lib/python3.6/dist-packages/ && tar -xzf plant_seedlings.tar.gz
!cd /content
!python -m plant_seedlings
%load filename.py
加载它根据Korakot Chaovavanich的回答,我创建了下面的函数来下载Colab实例中所需的所有文件
from google.colab import files
def getLocalFiles():
_files = files.upload()
if len(_files) >0:
for k,v in _files.items():
open(k,'wb').write(v)
getLocalFiles()
然后可以使用通常的“import”语句在Colab中导入本地文件。我希望这有帮助您可以将这些.py文件上载到Google drive,并允许Colab使用它们:
!mkdir -p drive
!google-drive-ocamlfuse drive
根文件夹中的所有文件和文件夹将位于2019年6月的驱动器中。
确保在Python包的\uuuu init\uuuu.py
中按顺序导入所有相关文件。将代码推送到Git或use
例如
from .Boxes import *
from .Circles import *
from .Rectangles import *
...
不要在\uuuu init\uuuu.py
文件中使用包名来导入文件
在Google colab中
! rm -rf SorghumHeadDetection
! git clone https://github.com/user/amazing-repo-name/
我也面临同样的问题。在阅读了大量的文章之后,我想介绍一下我最终选择的解决方案(例如使用urllib
,httpimport
,从GitHub克隆,打包模块以供安装等)。该解决方案利用Google Drive API()进行适当授权
优势:
简单安全(无需代码处理文件操作异常和/或额外授权)
由Google帐户凭据保护的模块文件(其他人无法查看/获取/编辑)
您可以控制上载/访问的内容(您可以随时逐个文件更改/撤销访问权限)
一切都在一个地方(无需依赖或管理其他文件托管服务)
可自由重命名/重新定位模块文件(不基于路径,不会破坏您/他人的笔记本代码)
步骤:
将您的.py模块文件保存到Google Drive-您应该已经有了它,因为您已经在使用Colab
右键单击它,“获取可共享链接”,在“id=
”后复制该部分-谷歌硬盘分配的文件id
向Colab笔记本添加并运行以下代码段:
!pip安装pydrive#包以使用Google Drive API-默认情况下未安装在Colab VM中
从pydrive.auth导入GoogleAuth
从pydrive.drive导入GoogleDrive
从google.colab导入验证#其他必要的软件包
从oauth2client.client导入Google凭据
auth.authenticate_user()#在授权过程中遵循提示
gauth=GoogleAuth()
gauth.credentials=GoogleCredentials.get_应用程序_默认值()
drive=GoogleDrive(高斯)
your_module=drive.CreateFile({“id”:“your_module_file_id”})#“your_module_file_id”是可共享链接中“id=”之后的部分
您的_module.GetContentFile(“您的_module_file_name.py”)#将.py模块文件保存到Colab VM
导入您的_模块_文件_名称#准备导入。当然,不要包括“.py”部分:)
旁注
最后但并非最不重要的一点是,我应该赞扬这种方法的成功。那篇文章可能在代码中有一些输入错误,因为当我尝试它时,它触发了一个错误。经过更多的阅读和故障排除,我上面的代码片段成功了(截至今天,在Colab VM OS:Linux 4.14.79上)。以防其他人有兴趣知道如何在google Colab中从gdrive导入文件/包。以下程序对我有效:
1)在google colab中安装您的google驱动器:
from google.colab import drive
drive.mount('/content/gdrive/')
import sys
sys.path.append('/content/gdrive/mypythondirectory')
2)使用sys:
from google.colab import drive
drive.mount('/content/gdrive/')
import sys
sys.path.append('/content/gdrive/mypythondirectory')
现在您应该可以从该目录导入内容了 一个简单的方法是
输入
从google.colab导入文件
upload=文件。upload()
复制代码
贴在colab细胞中
我们可以这样做
import sys
import os
py_file_location = "/content/drive/My Drive"
sys.path.append(os.path.abspath(py_file_location))
现在,您可以将其作为笔记本中该位置的模块导入
import whatever
下面是对我有用的步骤
在google colab中安装您的google驱动器
从google.colab导入驱动器
安装(“/content/drive”)
插入目录
导入系统
sys.path.insert(0,“/content/drive/My drive/ColabNotebooks”)
检查当前目录路径
%光驱/MyDrive/ColabNotebooks
%pwd
导入您的模块或文件
导入my_模块
如果出现以下错误“未定义名称Null”,请执行以下操作
5.1从colab下载my_module.ipynb作为my_module.py文件(文件->下载.py)
5.2将*.py文件上载到Google drive中的drive/MyDrive/ColabNotebooks
5.3导入my_模块将正常工作n