見出し画像

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ファイルに書く!


いいなと思ったら応援しよう!

ピックアップされています

Python関連

  • 149本

コメント

ログイン または 会員登録 するとコメントできます。
備忘録としてchatGPTに聞いたことをただ貼り付けている記事もあります(タイトルに「メモ○○」)。内容の正誤判定を実施する”前に”投稿しています。記事内容を参考にされる場合は自己の責任において判断をお願いします。いくつかは自分で書いたものです。
Streamlit layout="wide"が解除される問題|Fuji
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1