Google Colaboratoryのローカルランタイムを使用する
2021-12-24 / Google Colaboratory, Python
Google Colaboratory で作業したいけど、実行は自分のマシンで行いたいことがあったので設定してみました。Mac 前提です。
既存の Python 環境の確認
過去にインストールした Python3 が入っているはずなので確認します。
$ which -a python3
/usr/local/bin/python3
/usr/bin/python3
$ python3 -V
Python 3.9.9
プロジェクトに閉じた環境を構築する
PC 内のグローバルな Python 環境を汚したくないので venv
を利用して virtualenv
の環境を構築します。
$ pwd
/Users/kawaken/projects/work/jupyter
$ python3 -m venv .venv
$ ls -la
.venv
を利用可能にして確認します。
$ source .venv/bin/activate
(.venv) $ which python
/Users/kawaken/projects/work/jupyter/.venv/bin/python
(.venv) $ python -V
Python 3.9.9
(.venv) $ which pip
/Users/kawaken/projects/work/jupyter/.venv/bin/pip
deactivate
で元に戻ります。
(.venv) $ deactivate
$ which python
/usr/bin/python
$ python -V
Python 2.7.10
Google Colaboratory と連携
Google Colaboratory ではローカルランタイムを選択して実行できるので、それに対応します。セットアップ手順はこちらに詳細が記載されています。
$ source .venv/bin/activate
(.venv) $ pip install jupyter
...
(.venv) $ pip install jupyter_http_over_ws
...
(.venv) $ jupyter serverextension enable --py jupyter_http_over_ws
Enabling: jupyter_http_over_ws
- Writing config: /Users/kawaken/.jupyter
- Validating...
jupyter_http_over_ws 0.0.7 OK
Jupyter を起動
Google Colaboratory と接続できる状態で起動します。 --no-browser
をつけることで起動時にブラウザーが開かないようになります。
(.venv)$ jupyter notebook \
--NotebookApp.allow_origin='https://colab.research.google.com' \
--port=8888 \
--NotebookApp.port_retries=0 \
--no-browser
起動すると以下のような URL が出力されるので、コピーしておきます。
http://localhost:8888/?token=<ランダムな文字列>
Google Colaboratory でローカルランタイムを指定する
ランタイムに接続する設定でローカルランタイムを選択します。
接続先のポート指定はそのままで(先ほど 8888 を指定して起動しているので)、Jupyter が発行した URL を入力します。
問題なく接続できたら接続先が接続済み(ローカル)
になります。試しに ls
を利用してローカルのディレクトリを参照してみます。
接続が上手くいかない場合
Google Colaboratory の画面にトラブルシューティング
へのリンクが出るので、そこに表示されているコマンドを実行します。どうやら Python のバージョンと jupyter_http_over_ws
のバージョンの組み合わせ問題があるようです。