スポンサーリンク

【超簡単】StreamlitでPython製Webアプリを最速作成&無料公開する方法

Webアプリ開発
  1. はじめに|Streamlitってなに?なにがすごいの?
  2. 1. Streamlitの魅力とは?|なぜ人気なのか
    1. 🧑‍💻 1. PythonだけでWebアプリが作れる!
    2. ⚡ 2. コードを保存すればすぐ反映|リアルタイム更新!
    3. 📊 3. データ分析に強い!グラフや表が得意
    4. 🌍 4. 無料で世界に公開できる!
    5. 🔧 5. サイドバーやフォーム、マルチページまで対応!
  3. 2. Streamlitのインストールと基本の使い方
    1. 🔧 Step1:Streamlitをインストールしよう
    2. 📝 Step2:アプリのPythonファイルを作成しよう
    3. 🚀 Step3:アプリを起動してみよう
    4. 🔁 コードを修正→即反映!
    5. 💡 補足:エラーが出たら?
  4. 3. よく使うUIコンポーネントの紹介とサンプル
    1. 📝 テキストを表示する
    2. 📊 表やデータを表示する
    3. 🎨 画像や動画を表示する
    4. 🧑‍🔧 入力ウィジェットを使う
    5. 📦 サイドバーを使ってUIを整理
    6. 🔁 処理中のスピナー表示
  5. 4. Webアプリをデプロイするには?|無料でネット公開!
    1. 🧰 事前準備:GitHubアカウントを用意しよう
    2. 🗂 Step1:アプリファイルをGitHubにアップロード
    3. 🌐 Step2:Streamlit Cloudでアプリを公開!
    4. 📎 公開されたURLを共有しよう!
    5. 💼 補足:Snowflakeなど高度なデプロイも可能
  6. 5. さらに進んだ使い方|複数ページ・レイアウト・セッション管理
    1. 📄 複数ページ構成にするには?
      1. ✅ やり方
    2. 🧱 レイアウトを整えるには?|カラムやタブを使おう
      1. 📌 カラムで横並びに表示
      2. 📌 タブ切り替えもできる!
    3. 💾 セッション状態を管理する|st.session_stateの活用
      1. 例:カウンターを作る
    4. 📋 フォームでまとめて送信
  7. 6. 注意点とよくあるトラブル
    1. 🔄 ブラウザをリロードすると状態がリセットされる?
      1. ✅ 対策:st.session_state を使う
    2. 🐛 実行エラーが出る! → エラーメッセージをよく読もう
    3. 📂 ファイルアップロードがうまくいかない?
      1. ✅ よくある注意点
    4. 🐢 表示が遅い・重い
      1. ✅ 対処法
    5. 📦 バージョンアップで動かなくなる?
      1. ✅ 対策
  8. 7. まとめ|StreamlitでWebアプリ開発はここまで簡単!
    1. ✅ この記事で学んだこと
    2. あわせて読みたい
  9. よくある質問(Q&A)
    1. 関連投稿:

はじめに|Streamlitってなに?なにがすごいの?

「Pythonで作ったスクリプトをそのままWebアプリにできたらなぁ…」
そんなこと、思ったことありませんか?

実はそれ、**Streamlit(ストリームリット)**を使えばあっという間に実現できるんです!

Streamlitは、PythonだけでWebアプリを簡単に作れるフレームワークです。HTMLやJavaScriptといったフロントエンドの知識がなくても大丈夫。Pythonのコードをそのまま使って、グラフや表、フォーム付きのアプリまで作れちゃいます。

しかも、無料でネット公開までできちゃうんです。

たとえばこんな人におすすめです:

  • Jupyter Notebookの延長でWebアプリを作ってみたい
  • 自分の作った分析ツールを友達や同僚に使ってもらいたい
  • データ入力フォームや計算アプリを作って業務を効率化したい

この記事では、そんなStreamlitの使い方を初心者向けにわかりやすく解説します。

インストールから、基本のUI、そして実際にネット公開するところまで、手を動かしながら学べるように構成しているので、ぜひ一緒に試してみてください!




1. Streamlitの魅力とは?|なぜ人気なのか

Streamlitがここまで注目されている理由は、とにかく**「簡単で早い」**ことに尽きます。
でもそれだけじゃないんです。ここでは、初心者にこそ知ってほしいStreamlitの魅力を紹介します。


🧑‍💻 1. PythonだけでWebアプリが作れる!

通常、Webアプリを作ろうと思うと、HTML・CSS・JavaScriptなど、いろんな技術を覚える必要があります。
でもStreamlitなら、Pythonコードを書くだけでWeb画面が完成します。

たとえばこのコード一行だけで、画面に大きなタイトルが表示されます👇

import streamlit as st
st.title("こんにちは、Streamlit!")

これだけでOK!余計な設定やテンプレートは不要です。


⚡ 2. コードを保存すればすぐ反映|リアルタイム更新!

コードをちょっと書き換えたら、すぐにアプリも変わってくれたら便利ですよね?
Streamlitはリアルタイムでコードの変更が反映されるので、試行錯誤がサクサク進みます。

streamlit run app.py

このコマンドでアプリを起動すれば、あとはブラウザを開いたままコードを直すだけ。自動でアプリがリロードされます。


📊 3. データ分析に強い!グラフや表が得意

Streamlitはもともとデータ分析のために設計されたフレームワークです。
そのため、PandasのデータフレームやMatplotlibのグラフも、ほんの数行でWeb上に表示できます。

import pandas as pd
st.dataframe(pd.read_csv("data.csv"))

グラフ表示もこんなに簡単👇

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.plot([1, 2, 3], [4, 6, 2])
st.pyplot(fig)

データサイエンス系のツールと非常に相性がいいのが特徴です。


🌍 4. 無料で世界に公開できる!

せっかく作ったアプリ、他の人にも使ってもらいたいですよね?
Streamlitなら、GitHubにアップするだけで無料でネット公開できます。

「Streamlit Community Cloud」という公式サービスがあり、わずか数クリックでデプロイが完了。サーバー構築も不要です。


🔧 5. サイドバーやフォーム、マルチページまで対応!

シンプルなUIだけでなく、以下のような本格的なアプリ構成にも対応しています。

  • サイドバー(st.sidebar
  • フォーム(st.form()
  • 入力チェック
  • ページの分割(pages/ディレクトリ)

ちょっとした業務ツールや分析アプリを自作したいときにもぴったりなんです。




2. Streamlitのインストールと基本の使い方

では早速、Streamlitを使ってみましょう!
ここでは、インストール方法から最初のアプリの作成・実行までをステップバイステップで解説します。


🔧 Step1:Streamlitをインストールしよう

まずは、Streamlitを自分のPCにインストールします。
Pythonがすでにインストールされていれば、以下のコマンドでOKです。

pip install streamlit

※エラーが出る場合は、python -m pip install streamlitを試してください。
対応バージョンは Python 3.7以上 です。


📝 Step2:アプリのPythonファイルを作成しよう

次に、Streamlit用のPythonファイルを1つ作成します。
ファイル名はなんでもいいですが、ここでは app.py にしておきましょう。

# app.py

import streamlit as st

st.title("こんにちは、Streamlit!")
st.write("これは最初のWebアプリです!")

このように、普段のPythonコードに st.〇〇() の関数を追加するだけで、WebアプリのUIが作れてしまいます。


🚀 Step3:アプリを起動してみよう

ターミナル(またはコマンドプロンプト)で、次のコマンドを実行してください。

streamlit run app.py

すると、自動的にブラウザが立ち上がり、アプリが表示されます。
※ブラウザが開かない場合は、http://localhost:8501 にアクセスしてみてください。


🔁 コードを修正→即反映!

Streamlitはリアルタイム更新に対応しています。
app.py を保存するたびに、ブラウザが自動で更新されるので、「書いて・見て・直す」が超スムーズに行えます。


💡 補足:エラーが出たら?

起動中にエラーが出た場合は、ターミナルに表示されたメッセージを確認してみましょう。
よくあるのは以下のようなものです:

エラー内容原因と対処
ModuleNotFoundError: No module named 'streamlit'→ pip install を忘れている場合があります。再度 pip install streamlit を実行しましょう。
OSError: [Errno 98] Address already in use→ すでにStreamlitアプリが起動中か、ポートがかぶっている可能性があります。別のターミナルで確認し、不要なプロセスを終了しましょう。

ここまでできれば、**「StreamlitでWebアプリが作れるようになった」**状態です!
次は、実際に使えるUIコンポーネントを紹介していきます👇




3. よく使うUIコンポーネントの紹介とサンプル

Streamlitのすごいところは、ほんの数行のコードで豊富なUIパーツを使えるところ。
しかも、Pythonのコードを書くだけでOKです。

ここでは、よく使う基本的なコンポーネント(ウィジェット)を実際のコード例つきで紹介していきます。


📝 テキストを表示する

Streamlitでは、見出しやテキストも簡単に表示できます。

st.title("タイトルです")
st.header("これはヘッダーです")
st.subheader("これはサブヘッダーです")
st.text("これは普通のテキストです")
st.markdown("**Markdown**にも対応しています!")

💡 st.write() はなんでも表示できる万能関数なので、迷ったらこれを使うのがオススメ!


📊 表やデータを表示する

Pandasのデータフレームやリストもすぐに画面に出せます。

import pandas as pd

df = pd.DataFrame({
"名前": ["田中", "佐藤", "鈴木"],
"年齢": [25, 30, 22]
})

st.write(df) # 自動的に表にしてくれる
st.dataframe(df) # スクロール可能な表(インタラクティブ)
st.table(df) # 静的な表(固定表示)

🎨 画像や動画を表示する

画像や動画も1行で表示可能です。

st.image("sample.png", caption="サンプル画像", use_column_width=True)
st.video("https://www.youtube.com/watch?v=xxxxxxx")

🧑‍🔧 入力ウィジェットを使う

フォームやインタラクティブなツールを作るなら、これらの入力系コンポーネントが便利です👇

name = st.text_input("名前を入力してください")
age = st.slider("年齢を選んでください", 0, 100, 25)
color = st.color_picker("好きな色を選んでください")

他にもたくさんあります:

コンポーネント説明
st.button()ボタンを表示
st.checkbox()チェックボックス
st.radio()ラジオボタン
st.selectbox()ドロップダウンから1つ選択
st.multiselect()ドロップダウンから複数選択
st.file_uploader()ファイルアップロード
st.date_input()日付の選択

📦 サイドバーを使ってUIを整理

サイドバーは st.sidebar.〇〇 を使えば、メイン画面とは別にウィジェットを配置できます。

option = st.sidebar.selectbox("メニューを選択", ["ホーム", "設定", "ヘルプ"])

👈 サイドバーを使うと、メイン画面がスッキリして見やすくなります!


🔁 処理中のスピナー表示

時間のかかる処理のときは、st.spinner() を使えば読み込み中の表示も可能です。

import time

with st.spinner("処理中..."):
time.sleep(2)
st.success("完了しました!")

ここまでが、Streamlitでよく使われる基本のコンポーネントたちです。




4. Webアプリをデプロイするには?|無料でネット公開!

せっかく作ったStreamlitアプリ、自分だけじゃなく他の人にも使ってもらいたい!
そんなときは、Streamlit Community Cloudを使えば、無料で世界中に公開できます。

GitHubと連携して簡単にデプロイできるので、難しいサーバー設定も必要なし。ここでは、そのやり方をステップ形式で紹介します。


🧰 事前準備:GitHubアカウントを用意しよう

Streamlit Cloudで公開するには、まずGitHubアカウントが必要です。まだ持っていない場合は、以下のリンクから無料登録できます。

👉 https://github.com/


🗂 Step1:アプリファイルをGitHubにアップロード

  1. GitHubで新しいリポジトリ(例: streamlit-app)を作成
  2. ローカルで以下のファイルを用意
    • app.py(またはmain.pyなど、アプリ本体)
    • requirements.txt(必要なライブラリの一覧)

requirements.txt はこんな感じで作ります👇

streamlit
pandas
matplotlib
  1. Gitでリポジトリにプッシュ(初心者はGitHub DesktopでもOK)

🌐 Step2:Streamlit Cloudでアプリを公開!

  1. Streamlit Community Cloud にアクセス
  2. GitHubアカウントでサインイン
  3. 「New app」をクリックし、リポジトリを選択
  4. 実行したいPythonファイル(例:app.py)を選んで「Deploy」!

これだけで、あなたのアプリがネット上で公開されます✨


📎 公開されたURLを共有しよう!

デプロイが完了すると、https://〇〇.streamlit.appのようなURLが自動発行されます。
このURLを友達や同僚に送れば、誰でもあなたのアプリを使えるようになります!

✅ URLは「非公開」にも設定可能なので、社内だけで使いたいケースにも対応できます。


💼 補足:Snowflakeなど高度なデプロイも可能

もっと本格的に運用したい場合は、以下の選択肢もあります。

  • Snowflake Streamlit:セキュリティ・ユーザー管理・CI/CD対応
  • Heroku / Render / AWS:カスタマイズ性の高いクラウド環境
  • 社内サーバーに直接設置:自社内のネットワークで閉じて使いたいとき

ただし初心者ならまずはStreamlit Cloud一択でOKです!




5. さらに進んだ使い方|複数ページ・レイアウト・セッション管理

Streamlitは、シンプルなUIだけじゃなく本格的なWebアプリっぽい機能も簡単に実現できます。
この章では、「もっと便利に」「もっときれいに」使うための応用テクニックを紹介します。


📄 複数ページ構成にするには?

Streamlitでは、1つのアプリ内に複数ページを作ることができます。しかもとても簡単!

✅ やり方

  1. app.py とは別に、pages/ フォルダを作成
  2. その中に Python ファイルを入れる(例:pages/page1.pypages/page2.py

すると、サイドバーにページ切り替えメニューが自動で表示されます!

🔁 ページは自動で読み込まれるので、ルーティングの設定などは不要です。


🧱 レイアウトを整えるには?|カラムやタブを使おう

📌 カラムで横並びに表示

複数のUIを横並びにしたいときは、st.columns() を使います。

col1, col2 = st.columns(2)

with col1:
st.write("左側のカラム")

with col2:
st.write("右側のカラム")

📌 タブ切り替えもできる!

Streamlit v1.10以降では、st.tabs() を使えばタブでコンテンツを切り替えることもできます。

tab1, tab2 = st.tabs(["グラフ", "表"])

with tab1:
st.line_chart(...)

with tab2:
st.dataframe(...)

💾 セッション状態を管理する|st.session_stateの活用

通常、Streamlitはブラウザを更新するたびに状態がリセットされます。
でも、st.session_state を使えば、データや入力値をアプリ内で保持できます。

例:カウンターを作る

if "count" not in st.session_state:
st.session_state.count = 0

if st.button("カウントアップ"):
st.session_state.count += 1

st.write(f"現在のカウント: {st.session_state.count}")

🧠 フォーム送信やログイン情報の管理などにも使えます!


📋 フォームでまとめて送信

複数の入力欄があって、ボタンを押したときに一括で処理したいときは、フォーム構文が便利です。

with st.form("my_form"):
name = st.text_input("名前を入力")
age = st.slider("年齢", 0, 100)
submitted = st.form_submit_button("送信")

if submitted:
st.write(f"{name} さんは {age} 歳です")

✅ 通常のst.text_input()などは毎回即反映されますが、フォームを使うと「まとめて送信」ができます。




6. 注意点とよくあるトラブル

Streamlitはとても便利ですが、いくつか知っておくべき注意点や、初心者がつまずきやすいポイントもあります。
ここでは、よくあるトラブルとその対処法をまとめました。


🔄 ブラウザをリロードすると状態がリセットされる?

Streamlitでは、ページを再読み込みするとすべての入力や変数が初期化されます。
たとえば、スライダーの値やカウントの状態なども元に戻ってしまいます。

✅ 対策:st.session_state を使う

状態を保持したいときは、セッション情報を管理できる st.session_state を活用しましょう。

if "name" not in st.session_state:
st.session_state.name = ""

name = st.text_input("名前を入力", value=st.session_state.name)
st.session_state.name = name

🐛 実行エラーが出る! → エラーメッセージをよく読もう

Streamlitでは、エラーが出るとアプリ画面の下に赤文字で表示されます。
内容をよく読んで、どの行で何が原因かをチェックしてみましょう。

エラーメッセージ例原因と対処法
ModuleNotFoundErrorライブラリが入っていない → pip install ライブラリ名
TypeError関数に渡す引数の型が間違っている
OSError: Address already in use他のアプリが同じポートで動いている → 先に終了させるか、ポート番号を変える

📂 ファイルアップロードがうまくいかない?

Streamlitの st.file_uploader() は、アップロードされたファイルをメモリ上で一時的に扱います。

✅ よくある注意点

  • ファイルサイズが大きすぎると読み込みに失敗する
  • file.read() はバイト形式で返るので、テキストとして読む場合は .decode() が必要
uploaded_file = st.file_uploader("ファイルを選択")
if uploaded_file is not None:
content = uploaded_file.read().decode("utf-8")
st.write(content)

🐢 表示が遅い・重い

大きなデータや複雑なグラフを扱うと、アプリの動作が重くなることがあります。

✅ 対処法

  • 表示するデータを必要最小限に絞る
  • 毎回同じ処理は @st.cache_data でキャッシュする
  • 外部ファイルの読み込みは必要なときだけ行う
@st.cache_data
def load_data():
return pd.read_csv("big_data.csv")

📦 バージョンアップで動かなくなる?

Streamlitは活発に開発が続けられているため、バージョンアップで仕様変更があることも。
過去に動いていたコードが突然動かなくなることもあります。

✅ 対策

  • requirements.txt にバージョンを固定して記載しておく
    例:streamlit==1.32.0
  • 公式ドキュメントやリリースノートを定期的にチェック

これらのポイントをおさえておけば、Streamlitでの開発がグッと快適になります!




7. まとめ|StreamlitでWebアプリ開発はここまで簡単!

ここまで読んでくださってありがとうございます!
今回紹介した Streamlit は、まさに「Pythonで最も手軽にWebアプリが作れる魔法のツール」です。


✅ この記事で学んだこと

  • インストールからアプリ作成までわずか数分!
  • グラフや表、フォームなど、豊富なUIをPythonだけで実装できる
  • 作ったアプリはStreamlit Cloudで無料公開が可能
  • st.columns()st.session_state などで本格的なアプリ構成にも対応
  • よくあるトラブルや注意点も事前に知っておけば安心!

Streamlitを使えば、アイデア次第でいろんなアプリが作れます。

たとえば…

  • 📊 データを見せる可視化ダッシュボード
  • 💬 チャット型のツールやフォームアプリ
  • 🧮 業務の自動化ツールや計算アプリ
  • 🔮 機械学習モデルのWeb化・デモ展示ページ

などなど、Pythonが少し書けるだけで、**あなたの作ったツールが「誰かの役に立つアプリ」**に変わります!

まずは、自分用のちょっとしたアプリを作って、身近な人に「これ便利だよ!」って見せてみましょう😊
きっと、新しい開発の楽しさが広がっていくはずです!


あわせて読みたい

Streamlitに関連するおすすめ記事をピックアップしました。データ処理やWeb公開の知識をさらに深めたい方におすすめです。


よくある質問(Q&A)

Q
Streamlitは無料で使えますか?
A

はい、ローカルでの開発も、Streamlit Community Cloudでの公開も基本無料です。

Q
HTMLやCSS、JavaScriptの知識は必要ですか?
A

基本的なアプリなら不要です。Pythonだけで完結します。

Q
複数人で開発できますか?
A

GitHubを使えば、複数人で共同開発することができます。バージョン管理もできて安心です。

※当サイトはアフィリエイト広告を利用しています。リンクを経由して商品を購入された場合、当サイトに報酬が発生することがあります。

※本記事に記載しているAmazon商品情報(価格、在庫状況、割引、配送条件など)は、執筆時点のAmazon.co.jp上の情報に基づいています。
最新の価格・在庫・配送条件などの詳細は、Amazonの商品ページをご確認ください。

スポンサーリンク