【Streamlit】自動読み込みの設定

Streamlit
この記事は約6分で読めます。

こんにちは、JS2IIUです。
Streamlitを使ってUIを開発していると何度もソースコードを更新して表示を確認することがあります。毎回ウェブブラウザの更新が手間に感じることもあると思います。自動で表示更新する設定方法について説明します。今回もよろしくお願いします。

1. はじめに

Streamlitでアプリケーションを開発していると、コードをちょっと変更しただけなのに、毎回ブラウザをリロードして変更を反映させるのが手間だと感じたことはありませんか?

実は、Streamlitにはソースコードの変更を自動で検知し、アプリを再読み込みしてくれる機能が備わっています。ただし、この機能は一部の環境では初期状態で有効になっていない場合があります。

本記事では、自動リロード機能を有効にするための設定方法をMac環境を例にとって解説します。

2. 自動リロードが効かない場合の症状

Mac環境などで以下のようにStreamlitアプリを起動した際:

Bash
streamlit run app.py

ターミナルに次のようなメッセージが表示されることがあります:

Plaintext
$ xcode-select --install
$ pip install watchdog

このような表示が出ている場合、Streamlitは自動リロードを行う準備ができていない状態です。

また、ブラウザ上のStreamlitアプリの右上に「Rerun」「Always rerun」といったボタンが表示されており、手動で再読み込みを促すUIが出ていることでも自動リロードが無効であるとわかります。

3. 自動リロード機能の仕組み

Streamlitの自動リロードは、ファイルシステムの変化をリアルタイムに監視するライブラリ「watchdog」により実現されています。

このwatchdogが正しくインストールされていないと、Streamlitはコードの変更を検知できず、手動での再読み込みをユーザーに促す仕組みになっています。

4. watchdogのインストール方法(Macの場合)

4.1 Xcode Command Line Tools のインストール

watchdogをMacで使用するには、事前にXcodeのコマンドラインツールが必要です。まだインストールしていない場合は、以下のコマンドを実行してください:

Bash
xcode-select --install

ダイアログが表示されるので、指示に従ってインストールを進めましょう。

4.2 watchdogのインストール

次に、Python用のwatchdogライブラリをインストールします。以下のコマンドを実行してください:

Bash
pip install watchdog

仮想環境を使用している場合は、仮想環境内でインストールすることを忘れないようにしましょう。

5. インストール後の動作確認

必要なツールとライブラリのインストールが完了したら、再度Streamlitアプリを起動してみましょう:

Bash
streamlit run app.py

アプリを起動後、エディタでapp.pyのコードを変更して保存すると、自動的にブラウザ側がリロードされ、変更内容が反映されるようになります。

また、右上に表示されていた「Rerun」や「Always rerun」のボタンが消えていることでも、自動リロードが有効になっていることを確認できます。

6. トラブルシューティング

✅ watchdogをインストールしても自動リロードされない場合

  • 仮想環境を使っていないか確認
    pip install watchdog をグローバル環境で行った場合、仮想環境で起動したStreamlitには反映されません。仮想環境内でインストールしましょう。
  • watchdogが正しくインストールされているか確認
    pip show watchdog を実行して、パスやバージョン情報が表示されるか確認してください。
  • 依存関係の不整合
    pip install --upgrade watchdog streamlit で依存ライブラリをまとめて更新してみてください。
  • ファイル保存時の挙動に注意
    一部のエディタ(特にリモート開発環境など)では、保存イベントがOS側に通知されない場合があります。ローカルで直接編集しているか確認しましょう。

7. その他の注意点

  • 仮想環境を使っている場合は、その環境内でpip install watchdogを実行しましょう。
  • WindowsやLinux環境では、watchdogがデフォルトで有効に動作することも多く、特別な設定は不要な場合があります。
  • watchdogのバージョンによっては、まれに動作が不安定なケースもあるため、その際はStreamlit公式のGitHub Issuesで情報収集するとよいでしょう。

8. おわりに

Streamlitの自動リロード機能は、開発の効率を大きく向上させてくれる便利な機能です。

Mac環境では少しセットアップが必要ですが、watchdogをインストールしてしまえば、以降はコードの変更を即座にブラウザへ反映できる快適な開発環境が整います。

まだ設定していない方は、ぜひこの機会に試してみてください!

9. 参考リンク

最後に書籍のPRです。
24年9月に出版された「ハイパーモダンPython-信頼性の高いワークフローを構築するモダンテクニック」、Claudio Jolowicz著、嶋田、鈴木訳。開発環境の構築、プロジェクトの管理、テストに関して実践的な内容でとても参考になる一冊です。ぜひ手に取ってみてください。

最後まで読んでいただきありがとうございます。

コメント

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