【Python】Streamlitで開発したWebアプリを無料で公開してみた

お手軽にWebアプリを作れるライブラリとして使われるStreamlitですが、開発したWebアプリを一般公開することもお手軽にできました。

目次

必要な環境

  • GIthub
    • 下記のStreamlist Cloudと紐づけするために使用します。
  • Streamlit Cloud
    • Streamlit公式がクラウド上にアップロードして公開してくれる仕組みを提供しているので利用します。無料で使用できます。

仕組み

ローカルで開発したWebアプリを任意のGithubリポジトリへpushします。

Streamlit Cloudでは紐づけしている任意のGithubリポジトリのWebアプリを自動的に公開します。

手順

  1. Webアプリを開発し任意のGithubリポジトリへpushします。(詳細は割愛)
    • 「requirements.txt」に外部ライブラリを列挙して合わせてアップロードします。
  2. Streamlit Cloudホーム画面の右上の「Create app」ボタンを押下します。
  3. 「Deploy a public app from GitHub」を押下します。
  4. 下記を入力し「Deploy」ボタンを押下します。
    • 任意のGithubリポジトリ名
    • ブランチ名
    • 実行するファイル名

以上が公開までの手順です。

やってみた感想

レンタルサーバや自宅サーバを公開設定せずとも世間にWebアプリを公開することができITの進化を感じます。

アップロード自体は簡単にサクッとすることができましたが、アップロードしてからWebアプリが正常に動作しない現象が発生しました。
(簡単に調べたところ欠損値処理が~という記事がでてきました。)

[2025/1/13]追記

プライベートリポジトリでデプロイ設定している場合にStreamlit Cloud側がClonできずエラーになることが分かりました。

エラーログ

[XX:XX:XX] 🖥 Provisioning machine…
[XX:XX:XX] 🎛 Preparing system…
[XX:XX:XX] ⛓ Spinning up manager process…
[XX:XX:XX] 🎈 Inflating balloons…
[XX:XX:XX] 🚀 Starting up repository: ‘リポジトリ名’, branch: ‘ブランチ名’, main module: ‘メインモジュール名’
[XX:XX:XX] 🐙 Cloning repository…
[XX:XX:XX] 🐙 Failed
[XX:XX:XX] 🐙 Failed
[XX:XX:XX] 🐙 Failed to download the sources for repository: ‘リポジトリ名’, branch: ‘ブランチ名’, main module: ‘メインモジュール名’
[XX:XX:XX] 🐙 Make sure the repository and the branch exist and you have write access to it, and then reboot the app.

プライベートリポジトリで公開する手順

  1. Streamlit Cloudログイン後、右上の「プロフィール」→「Settings」を選択します。
  2. 左ペイン「Linked accounts」を選択します。
  3. 右ペイン「Source control」にて「Logged in as <GitHubユーザID> using GitHub.」になっていることを確認します。
  4. もし未認証であれば、「Connect GitHub」を選択しGitHubの認証の受けます。
  5. エラーの出ているアプリを開き右下のメニューから「Reboot app」を選択します。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次