スポンサーリンク
streamlit

【完全ガイド】WindowsでStreamlitアプリをスタートアップ時にバックグラウンド起動する方法

streamlit
この記事は約3分で読めます。

StreamlitはPythonで簡単にWebアプリを作れる便利なツールですが、Windows環境でPC起動時に自動でバックグラウンド起動させたい場面も多いはず。しかもプロンプトが立ち上がった状態なので少し邪魔だったりします。

本当は NSLM(Non-Sucking Service Manager)を使ってサービス登録したかったのですが、管理者権限がない環境だったため断念。それでも諦めず、VBS + バッチ + スタートアップという構成で、Streamlit をバックグラウンド起動させることに成功しました。

🎯 目標

  • Windows起動時にStreamlitアプリを自動起動
  • 起動時にウィンドウを表示せず、バックグラウンドで実行
  • ログファイルに出力を保存して、後から確認可能

🧩 ステップ1:バッチファイルを作成する

まずは、Streamlitアプリを起動するバッチファイルを作成します。

📄 streamlit_start.bat

@echo off
PUSHD C:\python
streamlit run app.py > log.txt 2>&1
  • PUSHD で作業ディレクトリを app.py のある場所に移動
  • streamlit run app.py でアプリを起動
  • > log.txt 2>&1 で標準出力とエラーを log.txt に記録

🧩 ステップ2:VBSファイルで非表示実行

次に、バッチファイルを非表示で実行するためのVBSスクリプトを作成します。

📄 streamlit_start.vbs

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\python\streamlit_start.bat" & Chr(34), 0
Set WshShell = Nothing
  • chr(34) はダブルクォート(”)を表します
  • 0 はウィンドウを表示せずに実行する指定です

🧩 ステップ3:スタートアップに登録

最後に、作成した .vbs ファイルをスタートアップフォルダに配置します。

📂 スタートアップフォルダの開き方

  1. Win + R を押して「ファイル名を指定して実行」を開く
  2. shell:startup と入力して Enter
  3. 開いたフォルダに streamlit_start.vbs をコピー

これで、次回以降PCを起動したときに、Streamlitアプリが自動でバックグラウンド起動します!

✅ 動作確認とログの確認

  • 起動後、ブラウザが開かなくても http://localhost:8501 にアクセスすればアプリが表示されます。
  • log.txt に出力が記録されているので、エラーやログを確認できます。

📝 まとめ

ステップ内容
1.bat ファイルで Streamlit を起動
2.vbs ファイルで非表示実行
3スタートアップに .vbs を登録

NSLMが使えない環境でも、工夫次第で快適な常駐運用は可能です。業務用ツールやダッシュボードの自動起動にも最適な構成です!

コメント

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