LoginSignup
2
2

More than 1 year has passed since last update.

VSCode + RemoteSSH + Poetry + JupyterNotebook

Last updated at Posted at 2023-02-13

はじめに

この記事は、これまでサーバーにSSH接続でログインした後、poetryで構築していた仮想のPython環境でJupyterNotebookを使用していた自分が、

「VSCode内でJupyter使えるんだってよ!」

と聞いて、それなら解析環境の改善につながるかと試してみた際の備忘録です。

準備するぞ!

この辺は、1度設定を済ませておけば、2回目以降はスキップできるやつですね。

環境

2020のM1 macを使用していますが、サーバー内はUbuntuなのと、VSCodeがWinでも使えるはずなのでローカルの環境にはほぼ影響は受けないと思います。

Poetry環境の準備

  • pip install poetry でpoetryが使えるようにしておきます
    • 最低限のpython3の設定は省きます
  • サーバー内のプロジェクトフォルダで poetry init とかしてお pyproject.toml を用意します
  • poetry config virtualenvs.in-project true して、poetryで .venv が作られる状態にします
  • poetry config --list で表示される virtualenvs.path の中は空にしておく
    $ poetry config --list
    ...
    virtualenvs.create = true
    virtualenvs.in-project = true
    ...
    
  • poetry install で仮想環境を作成
  • pyproject.toml と同じ階層に .venv が作成されていることを確認する
    $ ls .venv
    LICENSE  NOTICE  bin  etc  include  lib  pyodbc.pyi  pyvenv.cfg  share
    

VSCodeの準備

  • VSCodeのextensionをインストールする
  • リモート接続用のconfigファイルしておく
    • ~/.ssh/config に必要な設定が書いてある状態

接続するぞ!

さて、準備が整ったら、あとはVSCodeから接続していきましょう。
左バーにRemote Explorerが表示されてると思います。

SSHの下に入りたいサーバーが表示されていないなら、configファイルの設定が違っているので、歯車から適切なファイルを選択しましょう

そして、入りたいサーバーが表示されると思うので、Current WindowでもNew Windowでもお好きな方で開いてください。

それがうまくいけば、Openからサーバー内のディレクトリが開けると思いますが、この時、 pyproject.toml がある場所(= .venv がある場所)を開くようにしてください。

そのあとは、普段VSCodeを使うのと同じようにファイルを選択して編集ができます。

そして、 .ipynb のファイルを開くと、既にJupyter Notebookが使えるようになっているかと思います。
ただし、importがうまくいかないケースがあるかも知れません。

そんな時は一旦落ち着いて、画面右上に見えているカーネル選択のボタンをクリックしてください。
どれを使うか選択できるので、Global Envでもなく、PyEnv Envでもなく、 .venv を使用した環境を選択してください。

そうすると右上にも .venv が見えると思いますし、準備段階で poetry install してできた環境が使えるようになったかと思います。
:point_down: のように、無事、importできていますね。

おわりに

ということで、サーバー内にPoetryで作成した仮想環境に、RemoteSSH接続することでVSCodeからJupyterNotebookが使えるようにするためのメモを書いてきました。

自分的には普段使い慣れていたJupyter環境とはテーマ(見た目)がガラッと変わってしまったのでまだ慣れていませんが、デザイン面・UI面なども整えていきたいと思います。

これで解析環境は改善されるかな?

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2