如何在Google Drive上为Google Colab安装conda?

3
! wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.2-Linux-x86_64.sh
! chmod +x Miniconda3-py37_4.8.2-Linux-x86_64.sh
! bash ./Miniconda3-py37_4.8.2-Linux-x86_64.sh -b -f -p /usr/local
import sys
sys.path.append('/usr/local/lib/python3.7/site-packages/')

这段代码安装了Google Colab上的conda。Colab对其会话有时间限制,每8或9小时活动计算后将重置环境状态和数据,因此我需要不断重新启动此单元格。

是否有一种方法可以在Google Drive上安装conda和所有必要的包?

2个回答

4

这不是一个完美的解决方案,但它可能比每次下载和构建新的conda安装更快。以下是步骤概述:

  1. 在Colab中将conda安装到本地目录,并将该目录打包并存储在Google Drive上。
  2. 当您启动新的Colab笔记本或重新启动现有的笔记本时,运行代码块从Google Drive获取conda安装并重新设置环境。

1. 创建conda及所需软件包的安装(仅需一次)

下载并安装miniconda到/content/miniconda3目录:

%env PYTHONPATH=
! wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-x86_64.sh
! chmod +x Miniconda3-py37_4.9.2-Linux-x86_64.sh
! bash ./Miniconda3-py37_4.9.2-Linux-x86_64.sh -b -f -p /content/miniconda3

将miniconda添加到系统的PATH中:
import os
path = '/content/miniconda3/bin:' + os.environ['PATH']
%env PATH=$path

安装所需的conda软件包(例如packagexyz):
!conda install -c conda-forge packagexyz -y

可选代码块:检查 packagexyz 是否正常工作。这将打印出 packagexyz 的版本以及其在 Conda 目录中的位置:

import sys
_ = sys.path.append("/content/miniconda3/lib/python3.7/site-packages")
import packagexyz
print(packagexyz.__version__, packagexyz.__file__)

将所有内容复制到 Google Drive 上(点击链接获取认证代码,然后将其粘贴到框中):

from google.colab import drive 
drive.mount('/content/drive')
!tar -zcf conda_colab.tar.gz /content/miniconda3
!cp conda_colab.tar.gz /content/drive/My\ Drive/

2. 将 conda 复制回 Colab(每次重新启动笔记本时运行)

挂载 Google Drive(需要再次输入授权码),将 conda 安装包复制回 Colab,并重新设置环境:

from google.colab import drive 
drive.mount('/content/drive')

!tar -xf /content/drive/My\ Drive/conda_colab.tar.gz -C ../

import os
path = '/content/miniconda3/bin:' + os.environ['PATH']
%env PATH=$path
%env PYTHONPATH=
import sys
_ = sys.path.append("/content/miniconda3/lib/python3.7/site-packages")

注意事项

  • 此解决方案仅经过轻微测试。您可能需要根据安装的包设置其他环境变量。
  • 通过调整tar压缩设置,步骤2可能会更快。如果您的conda安装非常大,请考虑在步骤1和步骤2的开头使用apt-get安装pigz,然后将--use-compress-program=pigz添加到!tar...命令中以并行化压缩和解压缩步骤。

1
与其按照这个答案将conda安装存储在Google Drive上,我现在推荐使用基于constructor的解决方案,结合conda-colab。请查看这个tutorial。这是一个比使用Google Drive更清洁和更快速的解决方案。 - Alex Malins

0

每次会话都安装 Conda:

代码单元 1:

%%bash
filepath=/tmp/miniconda.sh
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ${filepath}
bash ${filepath} -b -p /opt/conda
rm -f ${filepath}

代码单元格2:

path=%env PATH
%env PATH=/opt/conda/bin:{path}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接