つれづれなる備忘録

日々の発見をあるがままに綴る

Google Colabでpython7 ~ google drive上でのpipインストール

 以前はGoogle Colabでモジュールを新たにpipを用いてインストールする方法を紹介したが、時間が経過すると初期化されてしまい再度インストールする必要があった。今回はモジュールをGoogle Drive上にインストールし、ノートブック上でパスを追加することで時間が経過してもモジュールを読み込めることが確認できたのでそれを紹介する。

atatat.hatenablog.com

以前紹介したように基本的にはGoogle Colab/Drive に pip インストール: これなら消えない😃 - GGCS ごたごた気流調査所にあるようにGoogle Drive上にパスを通してpipを使ってモジュールをインストールするという手順を踏む。

今回は http://www.366service.com/jp/qa/11e0b5adc1cd37dbcf10fa1f2474f375

のコードを参考にしているが、パスの通し方だけが違っていてこちらのコードの方がうまくいった。

まず最初にGoogle colabのnotebookからGoogle Driveをマウントする必要がある。

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

以下の記事の通り、認証コードをコピーするとマウントが完了する。

atatat.hatenablog.com

次に以下のコードを使ってGoogle Drive上のパスを通しておく。

import os, sys
nb_path = '/content/notebooks'
os.symlink('/content/drive/My Drive/Colab Notebooks', nb_path)
sys.path.insert(0,nb_path)

symlinkについてはPython 3 - os.symlink() Method

またpath.insertについてはPython 3.x - [Python] sys.path.insertとは?|teratail を参照。

次にpipを使ってモジュールをさきほど通したGoogle Drive上のパスに以下のようにインストールする。今回はqulacsという量子回路シミュレーションのモジュールをインストールした。

!pip install --target=$nb_path qulacs

例えば以下のコードでimportできればインストールできていることが確認できる。

from qulacs import Observable, QuantumCircuit, QuantumState
from qulacs.gate import Y,CNOT,merge

時間が経過して初期化状態では、Google Driveのマウントとパスを通すコードを実行する必要があるが、pipに関しては実行しなくてもモジュールがimportすることができる。