Skip to content

Jupyter 環境で Streamlit アプリを実行できますか? 調べてみましょう。

Updated on

データサイエンスの常に進化する世界において、Streamlit と Jupyter という 2 つのツールが、複雑なデータをインタラクティブでユーザーフレンドリーなアプリケーションに変換する能力によって、ゲームチェンジャーとして浮上してきました。これらは独立したツールですが、それぞれに独自の強みがあり、ワークフローで一緒に使用してインタラクティブなデータアプリケーションを開発・展開することができます。

Streamlit はインタラクティブなデータアプリケーションを作成するための強力なツールであり、Jupyter はインタラクティブなコンピューティングのための柔軟な環境です。Streamlit アプリは通常、Jupyter 内で直接実行されるものではありません。代わりに、Streamlit がインストールされているコマンドラインから Python スクリプトとして書かれ、実行されます。このガイドでは、これらのツールの奥深さについて掘り下げ、ワークフローでの使用方法、Jupyter ノートブックを使用して Streamlit アプリを開発・展開する方法について説明します。

Streamlit アプリを Tableau のような UI に変換する、素晴らしいデータ分析&データ可視化ツールを聞いたことがありますか?

PyGWalker (opens in a new tab) は、あなた自身の Streamlit アプリに Tableau のような UI を簡単に埋め込むのをサポートする Python ライブラリです。

Streamlit でのデータ可視化のための PyGWalker (opens in a new tab)

Streamlit と Jupyter の紹介

Streamlit とは?

Streamlit は、データサイエンティストや開発者がわずか数行のコードで美しいインタラクティブなウェブアプリケーションを作成できるオープンソースの Python ライブラリです。データの探索、モデルのトレーニング、機械学習のワークフローを簡単に扱うことができるように設計されています。Streamlit のシンプルさと効率性は、データプロフェッショナルの間で人気のある選択肢となっています。

Jupyter とは?

Jupyter は、インタラクティブなコンピューティングのための柔軟な環境です。古典的な Jupyter ノートブック(ノートブック、ターミナル、テキストエディタ、ファイルブラウザ、豊富な出力など)のすべての馴染みのある構成要素を柔軟で強力なユーザーインターフェースで提供します。Jupyter は、Jupyter ノートブック、テキストエディタ、ターミナル、カスタムコンポーネントなどのドキュメントやアクティビティとともに、柔軟で統合的かつ拡張可能な方法で作業することができます。

Jupyter ノートブックでの Streamlit アプリの開発

Streamlit と Jupyter は独立したツールですが、ワークフローで一緒に使用することができます。streamlit-jupyter (opens in a new tab) パッケージを使用すると、Jupyter ノートブック内で Streamlit アプリを開発・プレビューすることができます。このパッケージでは、Streamlit のウィジェットやコンポーネントをノートブック内で開発・可視化するための Jupyter 互換のラッパーが提供されます。

Streamlit-Jupyter パッケージ

Streamlit-Jupyter パッケージ (opens in a new tab) は、Jupyter ノートブック内で Streamlit アプリをプレビューおよび開発するためのシンプルな Python パッケージです。このパッケージは、Streamlit のメソッドに対する Jupyter 互換のラッパーを提供し、ノートブック内で Streamlit のインタラクティブなウィジェットやコンポーネントを使用することができます。

問題ありません、続けましょう。

Streamlit-Jupyter パッケージ

Streamlit-Jupyter パッケージ (opens in a new tab) は、Jupyter ノートブック内で Streamlit アプリをプレビューおよび開発するためのシンプルな Python パッケージです。このパッケージは、Streamlit のメソッドに対する Jupyter 互換のラッパーを提供し、ノートブック内で Streamlit のインタラクティブなウィジェットやコンポーネントを使用することができます。

このパッケージを使用するには、まず Streamlit をインポートし、Streamlit-Jupyter でパッチを当てる必要があります。

import streamlit as st
from streamlit_jupyter import streamlit_patcher
streamlit_patcher.jupyter()

これでノートブックを通常通りに開発することができますが、Streamlit のインタラクティブな機能を追加で使用することができます。これは、ノートブックを Streamlit アプリに変換する前に、異なる可視化やコンポーネントの実験を行うのに特に便利です。

Jupyter ノートブックを Streamlit アプリに変換する

Jupyter ノートブック内で Streamlit アプリを開発・プレビューした後は、次のステップとして、ノートブックを Streamlit で実行できるように Python スクリプトに変換する必要があります。これは、この YouTube 動画 (opens in a new tab) でデモンストレーションされるように、Jupytext というツールを使用して行うことができます。

Jupytext は、スクリプトを含むさまざまなフォーマットの間で Jupyter ノートブックを変換することができる Python パッケージです。このパッケージを使用すると、ノートブックとそのすべてのマークダウンセルとコードセルを含む Python スクリプトに変換することができます。これは Streamlit アプリとして実行できるようになります。

Jupytext を使用してノートブックを Python スクリプトに変換する簡単な例を示します。

jupytext --to py your_notebook.ipynb

このコマンドは、ノートブック your_notebook.ipynb から your_notebook.py という名前の Python スクリプトを作成します。次に、このスクリプトを Streamlit アプリとして実行するために streamlit run コマンドを使用します。

streamlit run your_notebook.py

Streamlit アプリの実行

Streamlit アプリは通常、Streamlit がインストールされているコマンドラインから実行されます。アプリの Python スクリプトが含まれているディレクトリに移動し、streamlit run コマンドの後にスクリプト名を指定して、Streamlit アプリを実行できます。

streamlit run your_script.py

これにより、Streamlit サーバーが起動し、デフォルトの Web ブラウザがアプリの URL(通常は http://localhost:8501)に開かれます。

結論

Streamlit(ストリームリット)とJupyterLab(ジュピターラボ)は、データサイエンスの強力なツールです。それぞれ独自の強みを持っていますが、ワークフロー内で一緒に使用してインタラクティブなデータアプリケーションを開発することもできます。Streamlit-Jupyterパッケージを使用すると、Jupyterノートブック内でStreamlitアプリを開発してプレビューすることができます。また、Jupytextを使用してノートブックをPythonスクリプトに変換し、Streamlitアプリとして実行することもできます。

データの探索、機械学習モデルの構築、インタラクティブなダッシュボードの作成など、StreamlitとJupyterLabは柔軟かつ効率的な方法を提供し、データをインタラクティブなアプリケーションに変換することができます。

StreamlitアプリをTableauのようなUIに変換する、素晴らしいデータ解析・データ可視化ツール、PyGWalker (opens in a new tab)をご存知ですか?

PyGWalkerは、自分自身のStreamlitアプリにTableauのようなUIを簡単に組み込むことができるPythonライブラリです。

PyGWalker for Data visualization in Streamlit (opens in a new tab)

よくある質問

StreamlitはJupyter notebookと互換性がありますか?

StreamlitとJupyterは別々のツールですが、ワークフロー内で一緒に使用することができます。streamlit-jupyterパッケージを使用して、Jupyterノートブック内でStreamlitアプリを開発してプレビューすることができます。

JupyterノートブックをStreamlitにデプロイするにはどうすればよいですか?

Jupytextなどのツールを使用して、JupyterノートブックをPythonスクリプトに変換してから、streamlit runコマンドを使用してこのスクリプトをStreamlitアプリとして実行することができます。

JupyterとJupyterHubの違いは何ですか?

Jupyterはインタラクティブ計算のための多目的な環境であり、JupyterHubは複数のユーザーがJupyterノートブックを使用したり、共同作業したり、リソースを共有したりできるJupyterのマルチユーザーバージョンです。

JupyterHubと似たようなものは何ですか?

JupyterHubと似たようなツールには、RStudio Server、Apache Zeppelin、Databricksなどがあります。

StreamlitとJupyter Notebookの違いは何ですか?

Streamlitはインタラクティブなデータアプリケーションを作成するためのツールであり、Jupyter Notebookはインタラクティブな計算とデータの探索のための環境です。Streamlitアプリは通常、Pythonスクリプトとして書かれ、コマンドラインから実行されます。一方、JupyterノートブックはWebベースであり、インタラクティブなコーディングとデータの可視化が可能です。

JupyterLabでStreamlitを実行するにはどうすればよいですか?

streamlit-jupyterパッケージを使用して、Jupyterノートブック内でStreamlitアプリを開発してプレビューすることはできますが、通常、Streamlitアプリは直接JupyterLab内ではなく、Streamlitがインストールされているコマンドラインから実行されます。