ColaboratoryでのGoogle Driveへのマウントが簡単になっていたお話


##結論

以下のプログラムを使うと、drive/MyDrive/のなかにgoogle driveのデータがはいる。
**※以前まで、MyとDriveのあいだに半角スペースがありましたが、必要なくなったので注意です**

```py:マウント
from google.colab import drive
drive.mount('/content/drive')
```

#### 修正(2020/9/8)
さらに簡単になり、左上のフォルダマークから「ドライブをマウント」をクリックするだけでマウント完了するようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187186/01c80e7c-e1b0-ccec-9fcd-2810fb42e96d.png)

ドライブのマウントボタンを押すと…
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187186/2edf3c6e-d962-9be6-6840-f0d35304de8d.png)

アクセスを許可するか聞かれるので、「**Googleドライブに接続**」をクリックして認証に進む
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187186/0428a5ff-09f8-879f-41b7-27a72e4fda70.png)

認証後、ドライブのマウントボタンに斜線が入り、driveフォルダ配下に「My Drive」がマウントされています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187186/26ac7b4f-9e9c-9e0d-f1c3-7b3a92bad7d8.png)

ここから、フォルダ/ファイルのパスもコピーできるので、便利です！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187186/0cc8e661-279c-c6dd-026d-f95cf507ec86.png)

**※場合によっては、クリックしてもマウントできず、マウントするためのセルの実行を求められることがあります。その場合は、言われた通り現れたセルを実行しましょう！**
（参考）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/187186/4df93890-c79c-6d56-e1d1-8454fabfe7a8.png)



##前提
私は、研究でGoogleのcolaboratoryを使用しています。
（研究室で使えるGPUがないからね！）

なので、google driveに学習するデータをあげて、マウントして、colaboratoryで読み込みしてました。
以下がいままで行っていたマウントの方法のプログラムです。

```python:マウント（修正前）
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

!mkdir -p drive
!google-drive-ocamlfuse drive
```

これで2段階認証して、無事できていました。


##エラー発生

今日もいつもどおり、マウントしようとしていたところ、、、あれエラー？？
何も変えてないのに、、、

```
Processing triggers for dbus (1.10.22-1ubuntu1) ...
gpg: keybox '/tmp/tmpiruc_elw/pubring.gpg' created
gpg: /tmp/tmpiruc_elw/trustdb.gpg: trustdb created
gpg: key AD5F235DF639B041: public key "Launchpad PPA for Alessandro Strada" imported
gpg: Total number processed: 1
gpg:               imported: 1
Warning: apt-key output should not be parsed (stdout is not a terminal)
E: Unable to locate package google-drive-ocamlfuse
```

**Unable to locate package google-drive-ocamlfuse**とでてきてうまくいきません。
以上のエラーをGoogle検索しても、解決方法が出てきません。

マウントの方法が変わったのかと思い、
「**colaboratory gooogle drive**」で検索しても上記の方法しかでてきませんでした。
Google アカウントを新しく作り直してもまったく変わらず、、


## 解決方法
諦めていたのですが、[Colaboratory](https://t.co/yvU51U0YgH)のURLを開くと左にSample programがあるじゃないですか！！
sample programの[External data:Drive, Sheet, and Cloud Storage](https://colab.research.google.com/notebooks/io.ipynb)にやり方が書いてありました。

以下が方法です。

```python:マウント（修正後）
from google.colab import drive
drive.mount('/content/drive')
```

これだけです。たった2行で完了です。今まであんだけ長かったのに、、
実行すると、認証のURLが表示されます。
認証すると、**drive/MyDrive/**の中に、認証したアカウントのgoogle driveのファイルがはいっています。
drive直下でないの~~と、MyとDriveの間に半角スペースが空いている点~~が注意です！
※MyとDriveの間の半角スペースがなくなりました

これで、またいつものように研究できます。
一次情報をみることの重要性を再認識しました。