ColabCodeを使って、Google Colabの上でVS Codeを使ってみようVisual Studio Codeで快適Pythonライフ(1/2 ページ)

Google Colab上でVS Codeを動かす幾つかの方法のうち、ColabCodeというモジュールを使ってお手軽にこれを実現する手順を紹介します。

» 2021年08月27日 05時00分 公開
[かわさきしんじDeep Insider編集部]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Visual Studio Codeで快適Pythonライフ」のインデックス

連載目次

 前回は、Visual Studio Code(以下、VS Code)とJupyter拡張機能を使ったJupyter対話環境とノートブックのデバッグを見ました。今回はGoogle Colabの上でVS Codeを使ってみることにしましょう。

VS Code+Google Colabを実現する方法

 VS CodeとGoogle Colabを連携させるには大きく分けて2つの方法があります。

  1. ローカルマシンで動いているVS CodeからGoogle ColabにSSH接続する
  2. Google Colabの側でcolabcodeモジュールをインストールして、Google Colab上で(ブラウザ内で)VS Codeを実行する

 今回はお手軽な方法として、後者を試してみることにします。

Google Colab上でVS Codeを動かしているところ Google Colab上でVS Codeを動かしているところ

ColabCodeモジュールのインストールと実行

 この方法ではほんのわずかな作業で、Google Colab上でVS Codeを使えるようになります。まずはGoogle Colabで新規にノートブックを作成します(以下では、ファイル名を「launchcolabcode.ipynb」としています)。

Google Colabで新規にノートブックを作成したところ Google Colabで新規にノートブックを作成したところ

 次に先頭のセルに「!pip install colabcode」と記述して、これを実行します。colabcodeはGoogle ColabまたはKaggleの上でVS Codeを実行できるようにするためのモジュールです(内部では「code-server」と呼ばれるブラウザ内でVS Codeを実行できるようにするプログラムが使われています)。

colabcodeモジュールをインストールしたところ colabcodeモジュールをインストールしたところ

 セルを実行すると、上の画像のようにcolabcodeの実行に必要なものがインストールされます。最後に[RESTART RUNTIME]ボタンがあり、その上にも「You must restart runtime……」とあるので、このボタンをクリックして、ランタイムを再起動しましょう。後は、以下を実行するだけです。

from colabcode import ColabCode
ColabCode()

これだけでGoogle Colab上でVS Codeが使えるようになる(基本)

 これを実行すると、以下のような出力が表示されます。

実行結果 実行結果

 ここで出力にある「https://〜.ngrok.io」というリンクをクリックすると以下のように見慣れた(でも、少し違うところもある)VS Codeの画面が現れます(以下では、これを「code-server」と呼ぶことにしましょう)。

colabcodeによりGoogle Colab上で起動されたVS Code(code-server) colabcodeによりGoogle Colab上で起動されたVS Code(code-server)

 ところで、先ほどの出力を見ると、colabcodeを使って、Google Colab上でcode-serverを動作させようとすると、内部でngrokが使われることが分かります。ngrokはGoogle Colabとの間にセキュアなトンネルを確立し、「https://〜.ngrok.io」というURLを介して、Google Colab上で動作しているcode-server(とGoogle Colab上にあるファイルなど)へのアクセスを可能にしています。

 そのため、このURLを知っている人であれば、誰でもGoogle Colab上で実行中のこのcode-serverにアクセスできてしまいます。ちょっとしたお試しであれば、重要なデータはないでしょうが、外部に漏れると困ったことになるデータを扱っている場合には、これはあまりにも危険です。せめてパスワードによる認証を付加しておくことをお勧めします。これには、ColabCode関数呼び出しでpassward引数にパスワードを指定します(ColabCode関数を呼び出しているセルは実行が続いているので中断してください)。

ColabCode(password='somepasswd')

パスワードの指定

 このようにすると、「〜.ngrok.io」というリンクをクリックしたときに、以下のようにパスワードを求める画面が表示されるので、password引数に指定したパスワードを入力してください。

パスワードを求める画面 パスワードを求める画面

 パスワードを入力すると、先ほどにも見たcode-serverの画面が表示されます。

 ここで気を付けないといけないことは、先ほど作成したノートブック(launchcolabcode.ipynb)はcode-serverを起動するためのものとなっている点です。このノートブックを使って、何かをするのではなく、そこから起動されたcode-serverで新しくPythonスクリプト(.pyファイル)やノートブック(.ipynbファイル)を作成して、何らかの作業を行うことになります。このときに、仮想マシンのフォルダ上にファイルを作成すると、その仮想マシンが削除された時点でそれらのファイルもなくなってしまうことには注意してください。

 これを回避するには、例えば、Google ColabにGoogle Driveをマウントして、そこにファイルを作成するといったことが考えられます。Google Driveをマウントするには、ColabCode関数の呼び出し時にmount_drive引数にTrueを指定するだけです。

ColabCode(password='somepasswd', mount_drive=True)

Google Driveをマウントするための指定

 このときには、Google ColabにサインインしているGoogleアカウントを用いて認証コードを取得する必要があるかもしれません。このときには出力されているURLをクリックすると、新たにタブが開くので、そこで認証コードを取得してから、テキストボックスにそのコードを入力してください。

認証コードの入力 認証コードの入力

 これにより、Google Driveが仮想マシンの/content/driveフォルダにマウントされます。

Google Driveがマウントされたところ Google Driveがマウントされたところ

 次ページでは、この状態(パスワード認証あり+Google Driveをマウント)を標準のものとして、Google Colab上でVS Codeを実行する際のポイントを幾つか見てみましょう。

       1|2 次のページへ

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。