Jupyter 環境で Streamlit アプリを実行できますか? 調べてみましょう。
Published 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 と 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ライブラリです。
よくある質問
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がインストールされているコマンドラインから実行されます。