Mike Logaciuk

Instalowanie kerneli do VSCode i Jupytera

15 Jan 2025

header

Spis treści

Wstęp

Jupyter Notebook w Visual Studio Code to bardzo fajna alternatywa dla jego webowej wersji.

Dla inżynierów danych czy Python'istów to wręcz podstawowe narzędzie do prototypowania kodu.

Nie każdy wie, że możemy doinstalować Kernel'e dla innych języków, takich jak:

  • Elixir
  • Go
  • Javascript
  • Ruby
  • Scala
  • Typescript

Jupyter

Jupytera warto uruchamiać z wyodrębnionego środowiska.

W tym przypadku tworzymy mu osobny folder np.:

cd ~/Repos && mkdir -p jupyterbooks && cd jupyterbooks && virtualenv venv &&\
source venv/bin/activate && echo 'venv' > .gitignore &&\
pip freeze > requirements.txt

I instalujemy:

pip install notebook ipykernel

Następnie dodajemy sobie nowoutworzony folder do Workspace'ów w VSCode, restartujemy dla ‘zdrowia’ i po ponownych uruchomieniu, po wduszeniu F1 lub CTRL+SHIFT+P, wybieramy: Create: New Jupyter Notebook a w nim po prawej stronie wybieramy zakładkę Existing Jupyter Server, wpisujemy localhost i voula, uprzednio uruchamiając w konsoli jupyter server.

Dlaczego?

Ponieważ dzięki temu izolujemy biblioteki od systemowego Pythona, ot co.

Teraz możemy zainstalować Pandas'a, Polars'a czy inne narzędzia do np. manipulacji danymi (choćby Duckdb) i pracować bez przeszkód:

pip install ipython-sql duckdb duckdb-engine pandas numpy polars

DuckDB

By użyć DuckDB w notebook’u, musimy załadować plugin:

%load_ext sql
%sql duckdb:///:memory:

Następnie dla przykładu w komórce Pythonowej wywołujemy:

import duckdb
import pandas as pd
# No need to import duckdb_engine
#  jupysql will auto-detect the driver needed based on the connection string!

# Import jupysql Jupyter extension to create SQL cells
%load_ext sql

%config SqlMagic.autopandas = True
%config SqlMagic.feedback = False
%config SqlMagic.displaycon = False

%sql duckdb:///:memory:

Ruby

Instalujemy je tak:

gem install iruby
iruby register --force

Go

Dla Golanga wykonujemy:

  mkdir -p "$(go env GOPATH)"/src/github.com/gopherdata
  cd "$(go env GOPATH)"/src/github.com/gopherdata
  git clone https://github.com/gopherdata/gophernotes
  cd gophernotes
  git checkout -f v0.7.5
  go install
  mkdir -p ~/.local/share/jupyter/kernels/gophernotes
  cp kernel/* ~/.local/share/jupyter/kernels/gophernotes
  cd ~/.local/share/jupyter/kernels/gophernotes
  chmod +w ./kernel.json # in case copied kernel.json has no write permission
  sed "s|gophernotes|$(go env GOPATH)/bin/gophernotes|" < kernel.json.in > kernel.json

Javascript & Typescript i Php

O ile instrukcje instalacji znalazłem to nie udało mi się ich poprawnie zainstalować na Ubuntu 24.04.

Z tego też powodu nie dodaję instrukcji.

Elixir

Dla Elixira, obecnie najlepszą alternatywą są Livebook'i, które możecie znaleźć: tu.

Możecie też zainstalować go globalnie mają Elixira:

mix do local.rebar --force, local.hex --force
mix escript.install hex livebook

Uruchamianie:

livebook server