JupyterLabの拡張機能jupyterlab-lsp v0.8.0の導入方法(macOS)


修正

4/11 16:46
・v0.8.0への更新に伴い、色々削除や付け加えした。

自分の環境

・macOS Catalina バージョン10.15.3
・zsh 5.7.1
・pip 20.0.2
・pyenv 1.2.13
・pipenv 2018.11.26
・python 3.7.5
・JupyterLab 2.1.0

インストール

JupyterLab

JupyterLab本体は

$pipenv install jupyterlab  #pipenvの方
$pip install jupyterlab     #pipの方

でインストールしました。

nodebrew

Node.jsをインストールするために、Nodebrewを使用しました。
nodebrewとは、Node.jsのバージョン管理するためのものです。

それではnodebrewのインストール方法です。
(https://github.com/hokaccha/nodebrew)
この公式のインストール方法を参考にしました。

まず、curlnodebrewをインストールします。

$ curl -L git.io/nodebrew | perl - setup

インストール完了後、PATHを通します。

$echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.zshrc

(bashの方は.zshrc.bashrcにしてください)

構成ファイルを再読み込みします。

$source ~/.zshrc
$nodebrew help

で確認します。
バージョンなどの情報が出てきたら、インストール成功です。

Node.js

やっと本題のNode.jsnodebrewを使用し、インストールします。
JupyterLabの拡張機能はnpmを使用してインストールするので、Node.jsが必要です。

$nodebrew install-binary latest 

でインストールします。
インストール終了後、

$nodebrew ls
v13.12.0

でインストールされたバージョンを確認します。(私のバージョンはv13.12.0でした。)
次に、使うバージョンを指定します。

$nodebrew use v13.12.0

Node.jsのバージョンを確認してみましょう。

$node -v
v13.12.0

このようになっているはずです。
完了したら、jupyterLabを起動します。

$jupyter lab


起動後、上のパレットのようなアイコンを選択します。
その中の

を選択します。
選択するとこのようなポップアップが表示されるので[Enable]を選択します。

そうすると、

このようにチェックマークがつきます。さらに

このアイコンが追加されます。拡張機能をインストールする際はこのアイコンを選択して、@username/インストールしたい拡張機能で検索するか、

ターミナル上で

$jupyter labextension install @username/インストールしたい拡張機能

このようなコマンドを打つことでインストールすることができます。

jupyterlab-lsp

本命の拡張機能をインストールします。
https://github.com/krassowski/jupyterlab-lsp )公式サイトを参考にインストールします。
まず、jupyter-lspをインストールします。

pip install jupyter-lsp

次に拡張機能をインストールします。

$jupyter labextension install @krassowski/jupyterlab-lsp

また、jupyterlab上では@krassowski/jupyterlab-lspと検索すればインストールすることができます。お好きな方でインストールしてください。
jupyterLabでインストールする際はRebuildページの再読み込みは忘れず行ってください。
ターミナルでインストールする方もjupyterLabを起動したままの場合はページの再読み込みを行ってください。

次にターミナル上で

$pipenv install 'python-language-server[all]' #pipenv の方
$pip install 'python-language-server[all]' #pip の方

のどちらかを実行し、インストールします。

その後、jupyterlabのルートディレクトリとなる場所以外でもファイルを開くことができるようにする.lsp_symlinkを作成します。移動後、開きたい場所のシンボリックリンクを作成します。

mkdir .lsp_symlink
cd .lsp_symlink
ln -s /home home

これで準備は終了です。

最後に

以上です。最後になりますが、

Tabを押さずにピリオドを打つだけで自動補完してくれるjupyterlab-lspでpythonプログラミングを楽しみましょう!

参考サイト

https://qiita.com/simonritchie/items/34504f03947bfb4f54f5
https://github.com/krassowski/jupyterlab-lsp
https://github.com/hokaccha/nodebrew
https://github.com/palantir/python-language-server
https://serverjs.io/tutorials/getting-started/
https://www.npmjs.com/package/jsonrpc-ws-proxy
https://jupyterlab.readthedocs.io/en/stable/user/extensions.html