Installation¶
[3]:
Please Read This First¶
Delivering LSP features to your JupyterLab requires three pieces:
jupyter-lsp
¶
runs in your
notebook
web application on your server to handle requests from the browser to language serversto run, you need:
python >=3.6,<3.9.0a0
notebook >=4.3
jupyterlab-lsp
¶
runs in your browser, as an extension to JupyterLab
to install it, you need:
nodejs >=10.12,<15
jupyterlab >=2.2.0,<3.0.0a0
Language Servers¶
run on your server
probably in another language runtime than python
some can be automatically detected if installed
others also need to be configured
Fast Paths¶
Here are two approches based on Jupyter documentation. If these do not meet your needs, try The Harder Way.
[4]:
conda (minimal python)¶
conda create -c conda-forge -n lsp 'python >=3.7,<3.8' 'jupyterlab=2.2.0' 'nodejs >=10.12,<15' 'jupyter-lsp-python=0.9.3'
# jupyter-lsp-python includes both the server extension (jupyter-lsp) and pyls third-party server (python-language-server)
# if you swap it with another pre-made bundle, jupyter-lsp-r, you will get the server extension and r-languageserver;
# alternatively, use jupyter-lsp and manually install a language server of your choice (see the table below).
conda activate lsp
jupyter labextension install '@krassowski/jupyterlab-lsp@2.1.4'
Then run
jupyter lab
Your browser should open to your local server.
docker (data science)¶
This approach is based roughly on the Jupyter docker-stacks documentation, which should be consulted for more about connecting volumes, passwords, and other advanced features:
[5]:
Dockerfile
¶
# This already contains the python, r, julia, latex, and nodejs runtimes
FROM jupyter/datascience-notebook@sha256:73a577b006b496e1a1c02f5be432f4aab969c456881c4789e0df77c89a0a60c2
RUN conda install --quiet --yes --freeze-installed -c conda-forge \
'python-language-server' \
'jupyterlab=2.2.0' \
'r-languageserver' \
'texlab' \
'chktex' \
'jupyter-lsp=0.9.3' \
&& jupyter labextension install --no-build \
'@krassowski/jupyterlab-lsp@2.1.4' \
&& jupyter lab build --dev-build=False --minimize=True \
&& conda clean --all -f -y \
&& rm -rf \
$CONDA_DIR/share/jupyter/lab/staging \
/home/$NB_USER/.cache/yarn \
&& fix-permissions $CONDA_DIR \
&& fix-permissions /home/$NB_USER
docker-compose.yml
¶
version: '2'
services:
lsp-lab:
build: .
ports:
- '18888:8888'
Build and Start¶
docker-compose up
You should now be able to access http://localhost:18888/lab
, using the token
provided in the log.
The Harder Way¶
Get A Working JupyterLab environment¶
Refer to the official JupyterLab Installation Documentation for your installation approach.
pip |
conda |
pipenv |
poetry |
|
---|---|---|---|---|
|
|
|
*
PRs welcome!
Verify your lab works:
jupyter lab --version
jupyter lab
Get a Working NodeJS¶
The JupyterLab Development Environment Documentation shows some approaches for getting NodeJS.
conda |
|
---|---|
|
Verify your node works and is findable from python.
jlpm versions
Next Step: Language Servers¶
Now that you have jupyterlab-lsp
, jupyter-lsp
and all of their dependencies, you’ll need some language servers. See:
Language Servers that will be found automatically once installed
configuring
jupyter-lsp
for more control over which servers to load