Google Colab上でVS Codeを動かす幾つかの方法のうち、ColabCodeというモジュールを使ってお手軽にこれを実現する手順を紹介します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
前回は、Visual Studio Code(以下、VS Code)とJupyter拡張機能を使ったJupyter対話環境とノートブックのデバッグを見ました。今回はGoogle Colabの上でVS Codeを使ってみることにしましょう。
VS CodeとGoogle Colabを連携させるには大きく分けて2つの方法があります。
今回はお手軽な方法として、後者を試してみることにします。
この方法ではほんのわずかな作業で、Google Colab上でVS Codeを使えるようになります。まずはGoogle Colabで新規にノートブックを作成します(以下では、ファイル名を「launchcolabcode.ipynb」としています)。
次に先頭のセルに「!pip install colabcode」と記述して、これを実行します。colabcodeはGoogle ColabまたはKaggleの上でVS Codeを実行できるようにするためのモジュールです(内部では「code-server」と呼ばれるブラウザ内でVS Codeを実行できるようにするプログラムが使われています)。
セルを実行すると、上の画像のようにcolabcodeの実行に必要なものがインストールされます。最後に[RESTART RUNTIME]ボタンがあり、その上にも「You must restart runtime……」とあるので、このボタンをクリックして、ランタイムを再起動しましょう。後は、以下を実行するだけです。
from colabcode import ColabCode
ColabCode()
これを実行すると、以下のような出力が表示されます。
ここで出力にある「https://〜.ngrok.io」というリンクをクリックすると以下のように見慣れた(でも、少し違うところもある)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 ColabにサインインしているGoogleアカウントを用いて認証コードを取得する必要があるかもしれません。このときには出力されているURLをクリックすると、新たにタブが開くので、そこで認証コードを取得してから、テキストボックスにそのコードを入力してください。
これにより、Google Driveが仮想マシンの/content/driveフォルダにマウントされます。
次ページでは、この状態(パスワード認証あり+Google Driveをマウント)を標準のものとして、Google Colab上でVS Codeを実行する際のポイントを幾つか見てみましょう。
Copyright© Digital Advantage Corp. All Rights Reserved.