如何避免在Google Colaboratory中重复耗时安装软件包?
解决Google Colaboratory中保留软件包安装状态的问题
这个问题我太熟悉了——Colab的临时虚拟机机制确实会让人头疼,每次重启都要重装耗时的包简直是效率杀手。核心原因是Colab分配的后台虚拟机是临时资源,闲置约1小时(或会话超时)就会被系统回收,所有未持久化的内容都会丢失。下面给你几个实用的解决方案:
方法1:用Google Drive持久化安装包(最推荐)
这是最靠谱的方案,把安装的包直接存在你的Google Drive里,跨会话都能复用:
- 第一步,先挂载你的Google Drive到Colab环境:
按照提示完成授权即可。from google.colab import drive drive.mount('/content/drive') - 第二步,安装包时指定路径到Drive的文件夹,比如我习惯用
/content/drive/MyDrive/colab_packages:pip install --target=/content/drive/MyDrive/colab_packages [你的软件包名称] - 第三步,每次启动新会话时,把这个路径添加到Python的搜索路径里,这样Python就能找到已安装的包:
之后直接导入包就能用,不用再重新安装。import sys sys.path.append('/content/drive/MyDrive/colab_packages')
优势很明显:只要Drive里的文件不删,包就一直存在,第一次安装后后续零等待;唯一的小缺点是第一次安装还是要花时间,但这是一劳永逸的。
方法2:创建初始化代码模板
如果不想每次手动加路径,可以把安装和路径配置的代码放进笔记本的开头,设置成自动运行:
- 把挂载Drive、添加路径、(可选)安装包的代码块放在笔记本最顶部。
- 右键代码块选择「Run before」,或者在Colab的设置里把这段设为初始化代码。
- 就算重新启动会话,只要运行这段代码,
pip会自动检测Drive里的包是否已安装,已存在的话会直接跳过下载编译,速度快很多。
方法3:延长会话时长(临时缓解)
Colab的会话如果一直保持活跃(比如每隔几分钟执行一次代码、点击页面交互),最长可以维持12小时左右。但如果闲置超过1小时,还是会被回收,所以这个方法只能临时缓解,不能彻底解决问题。
额外提示
- 如果安装的是需要编译的大型包(比如带C扩展的机器学习库),方法1的效果尤其显著,因为编译后的二进制文件直接存在Drive里,不用每次重新编译。
- 要是需要更新包,只需要重新运行
pip install --target=/content/drive/MyDrive/colab_packages --upgrade [包名]即可。
内容的提问来源于stack exchange,提问作者ValientProcess
相关产品推荐
相关产品推荐

