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から使用できるメリットは個人的にはかなり大きいため、今後もこの環境を利用していきたいと思います。

-Python, VScode

執筆者:


comment

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

関連記事

no image

CentOSへのAnacondaのインストール

Contents1 目的2 環境3 Anacondaとは?4 pyenvのインストール5 Anaconda3のインストール 目的 pythonでデータ分析できる環境を作りたい。そのため、必要なパッケー …

【Python】cx_Oracleでデータを一括挿入する方法

Contents1 概要2 環境3 Step1 : Oracle側テーブル作成4 Step2 : Pythonによる一括挿入コード5 まとめ 概要 pythonからOracleデータベースを操作するラ …

【Python】tkinterで画像を一定時間ごとに自動切換え

Contents1 目的2 使用ライブラリ3 Step1 : による画像表示4 Step2 : 画像の切り替え5 まとめ 目的 pythonでは簡単にGUIを作成できるライブラリとしてtkinterが …

WindowsのJupyterに外部からアクセスする

Contents1 目的2 環境3 Step1 : パスワードのハッシュ化4 Step 2 : configファイルの設定5 Step3 : Jupyter Notebookの起動6 Step4 : …

【Python】pandas dateframeで日時を日付と時間に分ける

Contents1 元データ2 日付と時刻にばらすコード 元データ このようなデータフレームがあり、日付と時刻にばらしたい場合の話。 import pandas as pd import dateti …

言語切り替え

カテゴリー