Python

Streamlit Share(Sharing)を使ってWebアプリを作成・公開する方法

Python

どうも、月見(@Suzuka14144156)です。

この記事では、Streamlit Share(Sharing)を使ってWebアプリを作成・公開する方法について解説します。

よってこのようなお悩みをお持ちの方におすすめの記事です。

  • Streamlitって何?
  • Streamlit Share(Sharing)って何?
  • なるべく簡単な方法が知りたい
本記事でわかること
公開までの流れ
  • 1
    Streamlit Sharingに登録する
  • 2
    WebアプリをGitHubにアップロード

    GitHubが未登録の場合は、登録すること

  • 3
    デプロイ

Streamlitとは?

  •  Web アプリを数分で立ち上げることができるPythonのライブラリです

以下の動画が分かりやすいかと思います。

Streamlitを利用すると、以下のようなダッシュボードが作成可能です。

またWebに公開することも比較的容易に実現することができます。

具体的なイメージは、以下のリンク先から確認可能です。

App Gallery • Streamlit
Streamlit is an open-source Python framework for machine learning and data science teams. Create interactive data apps in minutes.

Streamlitのメリット

  • Pythonのみで記述できる(HTML,CSSは不要)
  • これまで作成したpyコードや、jupyternotebookを利用できること
  • デプロイ~公開までが簡単

とにかくクイックにできるのが非常に魅力です。

参考:【Python】Streamlitとは?始め方、使い方を解説

Streamlit Share(Sharing)とは?

  • Streamlit Share(Sharing)は、データサイエンティストや機械学習エンジニアなどの開発者が、自分たちの作成したWebアプリケーションを簡単に共有できるクラウドプラットフォームです。

Streamlit Sharingを使うと、データ分析や機械学習モデルの成果物を、すばやくかつ簡単にWebアプリケーションとして公開することができます。

また、複数のユーザーが同時にアプリケーションを使用することができるため、共同作業やテストなども円滑に行うことができます。

  • Streamlit Sharingは、無料で利用できるプランもあります

サーバーの設定や管理などの手間を省き、開発者がより効率的にアプリケーションの開発に集中できるように支援しています。

Streamlit Share(Sharing)への公開方法

公開までの流れ
  • 1
    Streamlit Sharingに登録する
  • 2
    WebアプリをGitHubにアップロード

    GitHubが未登録の場合は、登録すること

  • 3
    デプロイ

Streamlit Share(Sharing)の登録

  • 以下のサイトにアクセス
https://share.streamlit.io/
  • GoogleかGithubで続ける
  • もしくはアドレスを登録する

私は、後々のことを考えてGithubで続けます。

  • 公開するには、Githubの連携が必要なので、Githubアカウントを作成し、Githubでログインすることをおすすめします
  • オーソライズする

以下の画面はGithubアカウントでログインしようとした場合です。

  • 以下個人情報を入力し、登録する
StreamlitのSnowflake
  • StreamlitのSnowflakeは、Streamlitが提供するデータ分析向けのオープンソースライブラリの一つです。
  • Snowflakeは、データベースとの接続やクエリの実行を簡単かつ直感的に行えるように設計されています。
  • 以下の画面が表示されれば登録完了です

WebアプリをGitHubにアップロード

  • Githubにアクセスする。

参考:Github

  • 「New」をクリックし、レポジトリを作成
  • 適当な名前で、レポジトリをクリエイト
  • uploading an existing fileをクリックします

アップロードするコード(main.py)は、以下に置いておきます。

活用ください。

GitHub - tsukimitech-blog/streamlit_test
Contribute to tsukimitech-blog/streamlit_test development by creating an account on GitHub.
main.pyの中身
import streamlit as st
import pandas as pd
import numpy as np

st.title('Uber pickups in NYC')

DATE_COLUMN = 'date/time'
DATA_URL = ('https://s3-us-west-2.amazonaws.com/'
            'streamlit-demo-data/uber-raw-data-sep14.csv.gz')

@st.cache_data
def load_data(nrows):
    data = pd.read_csv(DATA_URL, nrows=nrows)
    lowercase = lambda x: str(x).lower()
    data.rename(lowercase, axis='columns', inplace=True)
    data[DATE_COLUMN] = pd.to_datetime(data[DATE_COLUMN])
    return data

data_load_state = st.text('Loading data...')
data = load_data(10000)
data_load_state.text("Done! (using st.cache_data)")

if st.checkbox('Show raw data'):
    st.subheader('Raw data')
    st.write(data)

st.subheader('Number of pickups by hour')
hist_values = np.histogram(data[DATE_COLUMN].dt.hour, bins=24, range=(0,24))[0]
st.bar_chart(hist_values)

# Some number in the range 0-23
hour_to_filter = st.slider('hour', 0, 23, 17)
filtered_data = data[data[DATE_COLUMN].dt.hour == hour_to_filter]

st.subheader('Map of all pickups at %s:00' % hour_to_filter)
st.map(filtered_data)
  • ダウンロードをしたmain.pyをドラッグ&ドロップ
  • commit changesをクリック

これでアップロードが完了です。

デプロイ

次が、最終ステップのデプロイです。

  • 「New app」をクリック
  • 以下のように設定し、Deployをクリックします

*Repositoryは、皆様が作成したレポジトリを選択ください

Deployをクリックすると以下の画面が表示されますので、少々お待ちください。

しばらくすると以下の画面が表示されます。

今回は、Uberのピックアップ状況を可視化するダッシュボードを例にしました。

Streamlit Share(Sharing)への公開したサイト

今回公開したサイトは、以下です。

main
This app was built in Streamlit! Check it out and visit for more awesome community apps. 🎈

Streamlit関連の参考書や講座

treamlitの参考書は、以下がオススメです。

Streamlitを扱うには、基本的なPythonのコード知識が必要です。

その場合は、以下の書物がオススメです。

Udemyのオンライン講座は、以下がオススメです。

Udemyは買い切りなので、一度購入してしまえば、何度でも閲覧できるのでオススメです。

現役シリコンバレーエンジニアが教えるPython 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
現役シリコンバレーエンジニアが教えるPython入門!応用では、データ解析、データーベース、ネットワーク、暗号化、並列化、テスト、インフラ自動化、キューイングシステム、非同期処理など盛り沢山の内容です!

Streamlitの公式ドキュメント

今回解説した内容は、以下の公式サイトを参考にしています。

Streamlit Docs

まとめ

今回の記事では、Streamlit Share(Sharing)を使ってWebアプリを作成・公開する方法について解説しました。

Streamlitとは、以下です。

  •  Web アプリを数分で立ち上げることができるPythonのライブラリです

とても簡単に実装できるので、オススメです。

ぜひ参考にしてみてください。

コメント

タイトルとURLをコピーしました