Streamlit layout="wide"が解除される問題
streamlitを使っていて何も設定しないと
いや寄せ書きでもこのあとするのかってくらい左右に余白がある状態になります。
なので、画面を広く使うために
st.set_page_config(page_title="Sample", layout="wide")を使うわけです。
あら、今度はいい感じじゃないと思いきや。ブラウザの更新をするわけです。
もとに戻っちゃうんですよね。
クソ仕様か!って言いたいところですが、これ発生条件あります。
以下ディレクトリ構成とコード
sample_app
├── app.py
└── view
└── view.py# app.py
from sample_app.view import view
def main():
"""エントリーポイント"""
view.view()
if __name__ == "__main__":
main()# view.py
import streamlit as st
st.set_page_config(page_title="Sample", layout="wide")
def view():
st.title("Sample")
st.write("This is a sample page.")こんな感じでコード書くと、さっきのlayout="wide"が解除される現象が起きます。
原因はst.set_page_configをstreamlit run で指定する.pyファイルに記述していないことが原因です。
# app.py
import streamlit as st
from sample_app.view import view
st.set_page_config(page_title="Sample", layout="wide")
def main():
view.view()
if __name__ == "__main__":
main()にapp.py書いてください。
私の誤解として、「st.set_page_configは初めてstreamlitライブラリーが読み込まれるファイルに書く」と思い込んでいたことです。
だから
「app.pyはまずview.pyを読み込むわけだから、最初にstreamlitライブラリーを読む込むのはview.pyだ。st.set_page_configはview.pyに書くべきだ」なんて思ってしまいました。
正:streamlit run コマンドで指定する.pyファイルに書く!



コメント