如何将Google Drive的Python脚本下载到Colab并避免DOCTYPE报错
Colab下载Google Drive Python脚本异常排查方案
核心问题根因
- 执行wget拿到HTML文件的核心原因:Google Drive生成的普通分享链接是网页预览路由,不是可直接下载的文件直链,直接发wget请求拿到的是预览页面的HTML代码,完全不是你存储的Python脚本内容。
- 后续导入代码存在语法错误:Python导入自定义模块时不需要附带
.py文件后缀,from script.py import my_fun本身就不符合Python语法规则,就算下载到的script.py内容完全正确,这行代码也会触发报错。 - 针对你提出的“当前分享链接是否存在问题”的排查结论:你从右键调取分享、设置公司群组viewer权限、复制链接的全流程操作本身没有问题,权限设置也不会导致下载异常,之前拿到HTML内容和链接权限无关。
可正常下载脚本的可靠方法
方法1:改造wget请求为直链格式
Google Drive普通分享链接的固定格式为https://drive.google.com/file/d/[文件ID]/view?usp=sharing,提取链接中的文件ID后,替换为官方直链格式再执行wget即可:
!wget "https://drive.google.com/uc?export=download&id=你的文件ID" -O script.py
注意:Python脚本一般体积较小,不会触发Google Drive针对大文件的安全确认页,这种方式可以直接拿到正确的文件内容。
方法2:直接挂载Google Drive到Colab(最稳定无额外配置)
这是Colab原生支持的能力,完全不需要处理链接格式、下载拦截问题:
- 执行挂载代码,完成账号授权:
from google.colab import drive drive.mount('/content/drive') - 授权完成后,你的Google Drive全量文件会映射到Colab的
/content/drive/MyDrive/路径下 - 不需要把文件下载到Colab本地,直接把脚本所在路径加入Python搜索路径,即可导入自定义函数:
import sys sys.path.append('/content/drive/MyDrive/') from script import my_fun
方法3:使用gdown工具自动解析下载
gdown是专门适配Google Drive下载场景的命令行工具,会自动处理文件解析、确认跳转逻辑,不需要手动修改链接格式:
- 安装工具:
!pip install gdown - 直接传入你之前复制的完整分享链接执行下载:
!gdown "你复制的完整分享链接地址" -O script.py
这种方式不会出现拿到HTML预览页的问题,也适配大文件的下载场景。
操作注意事项
- 成功拿到正确的script.py文件后,导入自定义函数时务必去掉文件名后缀,使用
from script import my_fun的写法,避免触发语法错误。 - 如果使用上述方法下载时遇到权限报错,检查运行Colab的账号是否属于你之前设置的公司群组范围,确认脚本权限没有改成仅自己可见。
内容的提问来源于stack exchange,提问作者Mohammad
相关产品推荐
相关产品推荐

