0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

streamlitで現在ページの再トリガーを行う方法が変わっている

Posted at

背景

Hugging Face Spacesでstreamlitのアプリをデプロイしてみたら、現在のページの再実行をトリガーするst.experimental_rerunでAttribute Errorのエラーが発生し、streamlitにはst.experimental_rerunは存在しない旨が告げられてしまった。
しかしローカルでこのアプリの動作確認を行ってみると、普通にst.experimental_rerunの部分を問題なく通過する。
まあまず考えるのはローカルとHugging Face Spacesでのstreamlitのバージョンが合っていないのだろうなというところである。
しかし、Hugging Face Spacesでstreamlitアプリをデプロイする時には、requirements.txtに記載されている依存ライブラリをインストールしてくれるはずだから、streamlitのバージョンは合っているはずと思った。

結論と解決策

st.experimental_rerunはstreamlitのバージョン1.38.0から廃止されており、代わりにst.rerunを使うようにすれば良い。

そもそもなぜrequirements.txtで指定したローカルと同じバージョンのstreamlitがインストールされていなかったのかというと、requirements.txtでインストールが行われた後に、Hugging Face Spacesでデフォルトに用意されているDockerfileでビルドが行われるからだった。
そのデフォルトのDockerfileにはstreamlitをバージョン1.38.0でインストールする指示が含まれており、こっちが優先されたようだった(下図)。
スクリーンショット 2024-09-27 22.10.39.png

streamlitのバージョンを下げたDockerfileを作り、それで新しく「カスタムDocker環境」を使っても解決できますが、それだと一から環境を作り直す必要があったので、おとなしく新しいバージョンのstreamlitに合わせてコード修正した方が楽そう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?