Streamlit デプロイガイド

PythonでWebアプリを作れるStreamlitのデプロイ手順。


費用

無料
  • Streamlit Community Cloud無料枠
  • プライベートリポは制限あり

必要なもの

  • GitHubアカウント
  • Streamlitアプリ(app.py)
  • requirements.txt

ローカルで動作確認

01. インストール

pip install streamlit

02. 実行

streamlit run app.py

ブラウザで localhost:8501 が開く


Community Cloudにデプロイ

01. GitHubにリポジトリ作成

app.py と requirements.txt をpush

02. Streamlit Community Cloudにアクセス

https://share.streamlit.io/

03. GitHubでサインイン

04. New app → リポジトリを選択

  • Branch: main
  • Main file: app.py

05. Deploy

数分でデプロイ完了。URLが発行される


シークレット設定

01. APIキーなどの機密情報

App settings → Secrets → TOML形式で記述

OPENAI_API_KEY = "sk-..."

02. コードから参照

import streamlit as st
api_key = st.secrets["OPENAI_API_KEY"]

参考リンク


ここから先は、よくある質問と詰まりポイントを詳しく解説します。


Q&A - デプロイエラー

ModuleNotFoundError

requirements.txtに必要なパッケージが書かれていない。ローカルで pip freeze > requirements.txt して全部入れる。

デプロイが終わらない

  • requirements.txtに重いパッケージ(torch等)がある
  • ログを確認(Manage app → Logs)
  • リソース制限に引っかかっている可能性

「App not found」エラー

  • app.pyのパスが間違っている
  • ファイル名を確認(大文字小文字に注意)

Q&A - リソース制限

無料枠の制限

  • プライベートリポ: 1アプリまで
  • パブリックリポ: 無制限
  • メモリ: 1GB
  • スリープ: 非アクティブで停止

アプリがスリープする

無料枠はアクセスがないとスリープ。再アクセスで起動するが数秒かかる。常時起動が必要なら別のホスティング(Railway, Render等)を検討。


Q&A - シークレット関連

シークレットが読み込めない

  • TOML形式が正しいか確認
  • 引用符を確認(文字列は " で囲む)
  • デプロイ後にSecretsを追加した場合はRebootが必要

ローカルでもシークレットを使いたい

.streamlit/secrets.toml を作成(.gitignoreに追加すること)
OPENAI_API_KEY = "sk-..."

Q&A - 代替デプロイ先

Community Cloud以外の選択肢

  • Railway: 無料枠あり、Docker対応
  • Render: 無料枠あり、自動デプロイ
  • Heroku: 有料化済み
  • 自前VPS: 完全制御可能

参考リンク


タグ: #Streamlit #Python #デプロイ #Webアプリ #無料
← AI初心者シリーズ一覧へ