ユーザ用ツール

サイト用ツール


サイドバー

Top

検索タグ

変更履歴

メニュー


python:jupyterlab

JupyterLab

本家: Project Jupyter | Home
ソースコード: jupyterlab/jupyterlab: JupyterLab computational environment.
ドキュメント: Project Jupyter | Documentation

JupyterLab は Project Jupyter の次世代ユーザーインターフェースである。 柔軟で強力なユーザーインターフェイスで、クラシックな Jupyter Notebook の使い慣れたすべてのビルディングブロック(ノートブック、ターミナル、テキストエディター、ファイルブラウザー、豊富な出力など)を提供する。
Project Jupyter - Wikipedia

JupyterLab をインストールなしでブラウザで試す

誰でも、どこでも、コードをすぐに再現できる JupyterLab のインタラクティブなコード実行のサンプルを、まずは、インストールしないでブラウザで試してみたいという場合は、以下のサイトにアクセスしてみると直ぐに試すことができる。

こちらでは、Python、Julia、R、C++、Scheme、Ruby がすぐに試せる実行環境をデモとともに提供してくれるのでとても便利で簡単です🥰
Project Jupyter | Try Jupyter(https://try.jupyter.org/)
mybinder.org が、内部的に自分専用に Docker コンテナを自動生成して一時的な実行環境を提供してくれます。

Try JupyterLab - Binder をクリックする。(Try Classic Notebook - Binder で Jupyter Notebook も試すことができる)

Project Jupyter | Try Jupyter 001

インストール

pipJupyterLab を Python 仮想環境にインストールする。

仮想環境を作成する。(推奨)

$ python -m venv pyJupyterLab

pyJupyterLab 仮想環境をアクティブ化する。

$ . ./pyJupyterLab/Scripts/activate

pip 自体を最新化して JupyterLabVoila をインストールする。

(pyJupyterLab) $ python -m pip install -U pip
(pyJupyterLab) $ pip install jupyterlab
(pyJupyterLab) $ pip install voila

JupyterLab のログインパスワードを設定する。(設定されていないと毎回起動時にパスワードが変わる)

(pyJupyterLab) $ jupyter server password
Enter password:
Verify password:
[JupyterPasswordApp] Wrote hashed password to /home/pi/.jupyter/jupyter_server_config.json
起動コマンド 説明
$ jupyter notebook Jupyter Notebook を起動。
$ jupyter lab JupyterLab を起動。
$ jupyter lab --no-browser JupyterLab をリモートやヘッドレスマシンなどでブラウザなしで起動。
$ jupyter lab --ip=0.0.0.0 --no-browser JupyterLab をヘッドレスマシンなどで外部アクセスを許可して起動。
(pyJupyterLab) $ jupyter notebook
(pyJupyterLab) $ jupyter lab
(pyJupyterLab) $ jupyter lab --no-browser
(pyJupyterLab) $ jupyter lab --ip=0.0.0.0 --no-browser

仮想環境を終了する場合は $ deactivate を実行する。

(pyJupyterLab) $ deactivate
$ 

更新

pyJupyterLab 仮想環境をアクティブ化する。

$ . ./pyJupyterLab/Scripts/activate

pip 自体を最新化して JupyterLabVoila を更新する。

(pyJupyterLab) $ python -m pip install -U pip
(pyJupyterLab) $ pip install -U jupyterlab
(pyJupyterLab) $ pip install -U voila

コマンドライン

ヘルプ

jupyter コマンドの使い方。

$ jupyter --help
usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir] [--paths] [--json] [--debug] [subcommand]

Jupyter: Interactive Computing

positional arguments:
  subcommand     the subcommand to launch

optional arguments:
  -h, --help     show this help message and exit
  --version      show the jupyter command's version and exit
  --config-dir   show Jupyter config dir
  --data-dir     show Jupyter data dir
  --runtime-dir  show Jupyter runtime dir
  --paths        show all Jupyter paths. Add --json for machine-readable format.
  --json         output paths as machine-readable json
  --debug        output debug information about paths

Available subcommands: bundlerextension kernel kernelspec lab labextension labhub migrate nbclassic nbconvert nbextension notebook
run server serverextension troubleshoot trust

共通ディレクトリ/ファイルパス

(pyJupyterLab) $ jupyter --paths
config:
    /home/tomoyan/.jupyter
    /home/tomoyan/pyJupyterLab/etc/jupyter
    /usr/local/etc/jupyter
    /etc/jupyter
data:
    /home/tomoyan/.local/share/jupyter
    /home/tomoyan/pyJupyterLab/share/jupyter
    /usr/local/share/jupyter
    /usr/share/jupyter
runtime:
    /home/tomoyan/.local/share/jupyter/runtime
構成ファイル (config)
データファイル (data)
ランタイムファイル (runtime)

Common Directories and File Locations — Jupyter Documentation 4.1.1 alpha documentation

(pyJupyterLab) $ jupyter lab path
Application directory:   /home/tomoyan/pyJupyterLab/share/jupyter/lab
User Settings directory: /home/tomoyan/.jupyter/lab/user-settings
Workspaces directory: /home/tomoyan/.jupyter/lab/workspaces

GitHub に自分の公開 Binder を作成

Extension のインストール

Extension をインストールするには Node.js をインストールする必要がある。

jupyterlab/jupyterlab-git (jupyterlab/git)

.NET Interactive

.NET Interactive は 2019/05/16 にオープンソース化された Try .NET(*1) を .NET Notebooks Preview 2 で名称変更(*2)したものである。Preview 2 では C#, F#, PowerShell に加えて nteract のサポートが追加された。

*1 Try .NET は 2017 年 9 月に Microsoft Docs で公開されたときは Azure コンテナで実行していたが、その後 Blazor と Web Assembly の実装に置き換えられた。(Blazor - Web ブラウザで動作する .NET Core 環境 )
*2 Try .NET は 2020 年 2 月 6 日の .NET Notebooks Preview 2 で正式名称が .NET Interactive に変更された。


.NET Interactive は 2021/03/04 現在 C#, F#, PowerShell, JavaScript, HTML, T-SQL をサポートしています🤤

.NET Interactive now ships with T-SQL support in addition to C#, F#, PowerShell, JavaScript, and HTML.
.NET Interactive with SQL!| .NET Notebooks in Visual Studio Code | .NET Blog (2021/03/04) より

トラブルシューティング

JupyterLab のビルドが失敗する

(pyJupyterLab) $ jupyter lab build
[LabBuildApp] JupyterLab 3.0.16
[LabBuildApp] Building in /home/tomoyan/pyJupyterLab/share/jupyter/lab
[LabBuildApp] Building jupyterlab assets (production, minimized)
Build failed.
Troubleshooting: If the build failed due to an out-of-memory error, you
may be able to fix it by disabling the `dev_build` and/or `minimize` options.

If you are building via the `jupyter lab build` command, you can disable
these options like so:

jupyter lab build --dev-build=False --minimize=False

You can also disable these options for all JupyterLab builds by adding these
lines to a Jupyter config file named `jupyter_config.py`:

c.LabBuildApp.minimize = False
c.LabBuildApp.dev_build = False

If you don't already have a `jupyter_config.py` file, you can create one by
adding a blank file of that name to any of the Jupyter config directories.
The config directories can be listed by running:

jupyter --paths

Explanation:

- `dev-build`: This option controls whether a `dev` or a more streamlined
`production` build is used. This option will default to `False` (i.e., the
`production` build) for most users. However, if you have any labextensions
installed from local files, this option will instead default to `True`.
Explicitly setting `dev-build` to `False` will ensure that the `production`
build is used in all circumstances.

- `minimize`: This option controls whether your JS bundle is minified
during the Webpack build, which helps to improve JupyterLab's overall
performance. However, the minifier plugin used by Webpack is very memory
intensive, so turning it off may help the build finish successfully in
low-memory environments.

An error occured.
RuntimeError: JupyterLab failed to build
See the log file for details:  /tmp/jupyterlab-debug-yf057lv3.log
/tmp/jupyterlab-debug-yf057lv3.log
[LabBuildApp] Building in /home/tomoyan/pyJupyterLab/share/jupyter/lab
[LabBuildApp] Node v16.5.0
 
[LabBuildApp] Yarn configuration loaded.
[LabBuildApp] Building jupyterlab assets (production, minimized)
[LabBuildApp] > node /home/tomoyan/pyJupyterLab/lib64/python3.9/site-packages/jupyterlab/staging/yarn.js install --non-interactive
[LabBuildApp] yarn install v1.21.1
[1/5] Validating package.json...
[2/5] Resolving packages...
success Already up-to-date.
Done in 0.55s.
 
[LabBuildApp] > node /home/tomoyan/pyJupyterLab/lib64/python3.9/site-packages/jupyterlab/staging/yarn.js yarn-deduplicate -s fewer --fail
[LabBuildApp] yarn run v1.21.1
$ /home/tomoyan/pyJupyterLab/share/jupyter/lab/staging/node_modules/.bin/yarn-deduplicate -s fewer --fail
Done in 0.29s.
 
[LabBuildApp] > node /home/tomoyan/pyJupyterLab/lib64/python3.9/site-packages/jupyterlab/staging/yarn.js run build:prod:minimize
[LabBuildApp] yarn run v1.21.1
$ webpack --config webpack.prod.minimize.config.js
 
<--- Last few GCs --->
 
[4455:0x5f7c1d0]    78804 ms: Scavenge 478.9 (492.1) -> 478.8 (493.3) MB, 1.7 / 0.0 ms  (average mu = 0.261, current mu = 0.131) allocation failure 
[4455:0x5f7c1d0]    78807 ms: Scavenge 479.8 (493.3) -> 479.7 (498.1) MB, 2.2 / 0.0 ms  (average mu = 0.261, current mu = 0.131) allocation failure 
 
 
<--- JS stacktrace --->
 
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
 1: 0xb22900 node::Abort() [webpack]
 2: 0xa3c161 node::FatalError(char const*, char const*) [webpack]
 3: 0xd0b15e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [webpack]
 4: 0xd0b4d7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [webpack]
 5: 0xeec565  [webpack]
 6: 0xefb295 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [webpack]
 7: 0xefe38c v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [webpack]
 8: 0xec2dbc v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [webpack]
 9: 0x123977b v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [webpack]
10: 0x16437d9  [webpack]
error Command failed with signal "SIGABRT".
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
 
[LabBuildApp] JupyterLab failed to build
[LabBuildApp] Traceback (most recent call last):
 
[LabBuildApp]   File "/home/tomoyan/pyJupyterLab/lib64/python3.9/site-packages/jupyterlab/debuglog.py", line 47, in debug_logging
    yield
 
[LabBuildApp]   File "/home/tomoyan/pyJupyterLab/lib64/python3.9/site-packages/jupyterlab/labapp.py", line 166, in start
    raise e
 
[LabBuildApp]   File "/home/tomoyan/pyJupyterLab/lib64/python3.9/site-packages/jupyterlab/labapp.py", line 162, in start
    build(name=self.name, version=self.version,
 
[LabBuildApp]   File "/home/tomoyan/pyJupyterLab/lib64/python3.9/site-packages/jupyterlab/commands.py", line 469, in build
    return handler.build(name=name, version=version, static_url=static_url,
 
[LabBuildApp]   File "/home/tomoyan/pyJupyterLab/lib64/python3.9/site-packages/jupyterlab/commands.py", line 678, in build
    raise RuntimeError(msg)
 
[LabBuildApp] RuntimeError: JupyterLab failed to build
 
[LabBuildApp] Exiting application: JupyterLab

ログファイルに以下のエラーが載っている場合は、ヒープメモリー不足である。
FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory

その場合は node--max-old-space-size オプションを設定してから JupyterLab をビルドしてみる。

(pyJupyterLab) $ echo 'export NODE_OPTIONS="--max-old-space-size=1024"' >> ~/.bashrc
(pyJupyterLab) $ . ~/.bashrc
(pyJupyterLab) $ jupyter lab build

参考文献

付録

Spyder IDE ❓って初めて知りましたけど、有名なのでしょうかねぇ🤔 / Twitter
これもJupyterLab用のPowerShell Kernelの実装ですが、dotnet公式で対応していて以前はプレビューリリースの状態だったようですが、今はこちらが主流になって来ているのかな🤔 .NET Interactive / Twitter
.NET InteractiveはVisual Studio CodeのネイティブNotebook機能として実装されたものですねぇ🤔 MicrosoftもJupyterLabのNotebookを、VS Codeのインタラクティブ実行可能なNotebook機能として取り入れているということですねぇ🥰 / Twitter(Try .NET から名称変更されました)
投資銀行がオープンソース❓Jupyter関係の開発していますねぇ🤔 JPモルガンさんは投資家さんならみな良くご存じのゴールドマン・サックスとかモルガン・スタンレーみたいな世界的な金融グループですねぇ🤔 Project Jupyterは海外ではかなり注目プロジェクトということですね😲 / Twitter
Project Jupyterがすごい巨大化しているような感じがしていたんですよねぇ🤔おそらく世界的なスタンダードということだと思いますけどねぇ🤔 NumFOCUS Foundationさんの支援プロジェクトで...🤔 / Twitter
Python関係の科学技術に関連したオープンソースがいっぱいです🤔 / Twitter
なんですと❓2021/03/04のBlogで.NET Interactiveには、C#、F#、PowerShell、JavaScript、およびHTMLに加えて、T-SQLサポートが付属してるって発表していますねぇ😅💦 / Twitter

python/jupyterlab.txt · 最終更新: 2021/10/16 23:18 by ともやん