2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

StreamlitAdvent Calendar 2024

Day 7

Google ColabでStreamlit(2024年12月版)

Posted at

はじめに

Google Colaboratory上でStreamlitを使ってインタラクティブなWebアプリを簡単に作成・公開する方法を紹介します。
2024年12月時点の情報に基づいており、最新の環境で動作確認済みです。

Streamlitとは?

Streamlitは、Pythonでデータサイエンスや機械学習のWebアプリを構築するためのオープンソースフレームワークです。少ないコードでインタラクティブなUIを作成できるのが特徴で、データ分析結果の可視化やモデルのデプロイなどに活用されています。
お手軽にWebアプリを構築できる一方、Pythonの初学者にとっては環境構築がハードルになることがあります。
そこで本記事では、Google Colabを使って、サクッとStreamlitアプリを構築することを目指します。

Google Colabでの環境構築

Google ColabでStreamlitを使うには、以下の手順で環境を構築します。

1. Streamlitのインストール

!pip install streamlit

1つ目のセルで、Streamlitをインストールしましょう。

2. ローカルでの実行

Streamlitアプリをローカルで実行するには、以下のコマンドを実行します。

!streamlit hello & sleep 3 && npx localtunnel --port 8501

これにより、Streamlitのサンプルアプリが起動し、ブラウザでアクセスできるようになります。

順に解説します。

  • streamlit hello: バックグラウンドでStreamlitのビルトインサンプルアプリを起動するコマンドです
  • sleep 3: Streamlitアプリの起動を待つために3秒間待機します
  • npx localtunnel --port 8501: localtunnelを使って、ポート8501を外部に公開します。一時的なURLが生成され、外部からアクセスできるようになります

3. アプリの確認

Ok to proceed? (y)と確認が求められる場合はテキストボックスにyを入力し、
最後に表示されるyour url is:以降のURLを開きます。

スクリーンショット 2024-12-07 14.34.17.png

Tunnel Passwordには、Public IP(External URL: http://***:8501***)を入力します。
Click to Submitを押すと、アプリが開かれます。

スクリーンショット 2024-12-07 14.41.06.png

4. 個別アプリの確認

もちろん、別途作成した実行用のファイルを呼び出すこともできます。その場合は、

!streamlit run /content/drive/(***).py & sleep 3 && npx localtunnel --port 8501

などとします。

まとめ

本記事では、Google Colab上でStreamlitを使ってインタラクティブなWebアプリを作成・公開する方法を紹介しました。簡単な手順で環境構築から外部公開まで行えるため、ぜひ試してみてください。

なお、Google Colabのインスタンスは一定時間経過すると自動的に停止するため、公開したURLは一時的なものとなります。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?