如何移除Streamlit 1.10.0中显示文件名的侧边导航栏?
问题根因
Streamlit 1.10.0版本新增了原生多页面应用自动识别机制:当运行入口脚本(即你的app.py)的同级目录下存在名称为pages的文件夹时,框架会自动扫描该文件夹内所有合法Python文件,在侧边栏生成默认导航菜单,和你自定义的MultiApp多页面逻辑冲突,就出现了多余的自动生成导航栏。
解决方案
方案1:重命名pages目录(改动成本最低)
该方案不需要调整现有业务代码逻辑,只需要做两处修改:
- 将根目录下存放页面代码的
pages文件夹重命名为非pages的名称,例如views、page_modules均可 - 修改
app.py中的导入语句,将原有的from pages import show, analysis, help, custom, download, three_d替换为对应新目录名的导入,比如重命名为views就改成from views import show, analysis, help, custom, download, three_d - 重启Streamlit服务,自动生成的侧边导航栏会直接消失。
方案2:修改配置关闭原生导航
如果不想调整现有目录结构,可以通过配置项直接关闭Streamlit的自动页面导航生成功能:
- 在项目根目录创建
.streamlit文件夹,在文件夹内新建config.toml配置文件 - 在配置文件中写入以下配置:
[client] showPagesNav = false
- 保存文件后重启Streamlit应用,侧边栏的自动导航会被隐藏。
注意:该配置项仅在Streamlit 1.10.0及以上版本生效。
方案3:适配原生多页面框架(长期维护推荐)
如果项目需要长期迭代,可以直接替换自定义MultiApp框架,适配Streamlit官方原生多页面能力:
- 保留现有
pages目录结构,按照官方命名规则给页面文件添加排序前缀控制展示顺序,例如1_Show_data.py、2_Analysis.py - 把文件上传、CSV读取这类公共逻辑放到入口
app.py中,通过st.session_state实现跨页面的数据共享,不需要自行维护路由逻辑,运行性能比自定义MultiApp框架更优。
内容的提问来源于stack exchange,提问作者Mystic Mickey
相关产品推荐
相关产品推荐

