IT Learning

実践形式でITのお勉強

Python VScode

VSCodeから外部のJupyterへ接続する

投稿日:

目的

自端末の計算リソースが乏しい場合などに、リソースの豊富な計算機のJupyterを使用したいシーンがあります。ブラウザでJupyterを開けばいいだけの話ですが、エディタとして優れたVSCodeを使用したままJupyterも利用したい、というわがままな要求を満たすための方法についてまとめます。

環境

Jupyter サーバ (Windows10,Anaconda3 python3.7.6)

VSCodeクライアント version 1.46.0
python拡張機能

Step1 : Jupyterのconfig設定

VSCodeから外部のJupyterを使用する場合、VSCodeの拡張機能を使用することができますが、この拡張機能ではURLにtokenを埋め込んでアクセスする櫃ようがあります。そのため、Jupyterをパスワード認証ではなく、token認証方式にしておく必要があります。通常、tokenはJupyterサーバを起動するたびに生成されますが、今回は固定tokenを設定する方法について記載します。セキュリティ的には難ありなので注意。

ということで、まずはHOMEディレクトリの.jupyterフォルダにある、jupyter_notebook_config.pyを開きます。

ない場合は、以下を参考に作成してください。

jupyter_notebook_configファイルを開いたら、一番下に以下のようにtoken認証の記述を追加します。’ ‘の中に設定したいtokenの文字列を記載します。

c.NotebookApp.token = '<設定したいtoken>'

その後、Jupyter Notebookを再立ち上げします。再立ち上げの方法は一旦、サーバーの動作しているプロンプトの画面を閉じ、WindowsのスタートメニューのなかのAnaconda3 → Jupyter Notebookの順に開けばOkです。

以上で、Jupyter側の設定は終了です。

Step2 : VSCodeからの接続

VSCodeからの接続にはPythonの拡張機能を使用します。もしなければextensionからインストールします。

Pythonの拡張機能がインストールできている状態でF1キーを押し、表示されたサーチボックスの中にpythonと入力します。検索候補の中から

Python:Specify local or remote Jupyter server for connectionsをクリックします。

次にPick how to connect to Jupyterの選択がでますので、Existingを選択します。

するとEnter the URI of the running Jupyter serverと表示されます。

ここでtokenを埋め込んだJupyterサーバーのURIを以下のように入力します。

http://<hostname or IP>:8888/?token=<your_token>

下記例ではポートが8080となっていますが、通常Jupyterのデフォルトは8888になっているはずです。

以上でJupyterとの接続設定は完了です。

Step3 : Jupyterを使用して確認

最後に正しく接続できているかを確認します。

F1キーを押し、Python: Create New Blank Jupyter Notebookを選択します。

するとNotebookのセルが立ち上がるかと思います。この段階では右上にJupyter Server Not Startedと表示されているかもしれませんが、気にしなくても大丈夫です。

セルの中にと入力し、Shift + Enterを押します。

print("Hello World!")

すると、自動的にリモート先のJupyter serverと接続され、Hello worldと表示されます。右上の表示も相手先のJupyterのURIに変わりました。

無事にVSCodeからリモートのJupyterを使用することができました。

まとめ

リモートのリソースをVSCodeから使用できるメリットは個人的にはかなり大きいため、今後もこの環境を利用していきたいと思います。

Related

-Python, VScode

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です