如何在不导入文件的情况下调用Streamlit多页面应用副页的函数?
Streamlit双页面独立文件解决方案
一、双页面架构正确实现方式
Streamlit原生支持多页面应用,无需复杂导入操作,按以下目录结构创建即可:
your_app/ ├── main.py # 主页面文件 └── pages/ └── second.py # 第二个页面文件
- 主页面文件放在项目根目录,命名为
main.py - 新建
pages文件夹,将第二个页面的代码文件直接放入该文件夹(文件名可自定义,比如second.py) - 启动应用时运行命令
streamlit run main.py,左侧侧边栏会自动生成页面切换入口,两个页面完全独立,不会出现导入导致的前端内容重复问题
二、无网络环境下模型加载方案
无法使用torch.hub.load在线加载模型时,采用离线加载方式:
- 提前下载模型:在有网络的环境中,用
torch.hub.load完成模型下载,找到本地缓存路径(通常在~/.cache/torch/hub),将整个模型文件夹复制到工作电脑的指定路径 - 本地加载模型:使用
torch.hub.load的本地加载参数,示例代码:
# 在main.py中加载模型 import torch # 替换为你复制到本地的模型文件夹绝对路径 model = torch.hub.load('/本地模型文件夹路径', '模型名称', source='local')
三、跨文件共享逻辑的正确姿势
如果需要在两个页面间共享函数或变量,不要直接导入页面文件,而是单独创建工具文件:
# 创建utils.py存放共享逻辑 def shared_process(data): return data * 2 # 在main.py和second.py中导入使用 from utils import shared_process
内容的提问来源于stack exchange,提问作者Nikhil Tuli
相关产品推荐
相关产品推荐

