n番煎じですが,毎回!pip install hoge
をやるのはうっとうしく, コードが汚くなるので,パッケージはGoogle Driveにダウンロードしそれを読み込みに行くようにする.
メリット
- コードがきれいになる
- 時間短縮
- プロジェクトごとに
my-site-packages
(名前はなんでもよい)を作成することで,パッケージ管理(に近い何か)ができる
デメリット
- パッケージの読み込みが自分のGoogle Driveのディレクトリ構成に依存するので,コードの可搬性が下がる
- 共同研究者にコードを共有する際などにやや面倒かも
手順
(1). Google Driveにコードを置くプロジェクトディレクトリを作成し,その配下にmy-site-packages
なるディレクトリ(パッケージ置き場)を作成
(2). いつものコードを.ipynbファイルに書いて,Google Driveをマウント
# Google Colabでの処理
from google.colab import drive
drive.mount('/content/gdrive')
ついでに,先のmy-site-packages
のパスを変数に入れておく.
package_path = '/content/gdrive/MyDrive/Colab\ Notebooks/<dir_name>/my-site-packages/'
package_path_str = '/content/gdrive/MyDrive/Colab Notebooks/<dir_name>/my-site-packages/'
(3). pip install
する際に,--target
(-t
)オプションで,インストール先をmy-site-packages
に指定する.
!pip install <package_name> -t $package_path
(4). importする際に,sys.append
する
この際,sys.path
にはスペースをエスケープしていないものを引数として与える.
import sys
sys.path.append(package_path_str)
(5). あとは普通にimportすればよい