Streamlit初始化时st.image_select触发st.cache_data警告的解决求助
解决streamlit-image-select初始化时的st.experimental_memo警告
这个警告并非你的代码导致,而是streamlit-image-select模块内部使用了Streamlit已弃用的st.experimental_memo装饰器,因此初始化阶段会触发提示。以下是几种彻底消除该警告的可行方案:
方法1:升级streamlit-image-select到最新版本
模块开发者大概率会在新版本中替换掉旧的缓存API,优先尝试升级:
pip install --upgrade streamlit-image-select
升级完成后重启你的Streamlit应用,验证警告是否消失。
方法2:在代码中针对性屏蔽警告
如果升级后警告仍存在,可以在你的Python文件开头添加代码,专门屏蔽这个缓存API的弃用警告:
import streamlit as st import warnings # 屏蔽st.experimental_memo相关的弃用警告 warnings.filterwarnings("ignore", category=DeprecationWarning, message=".*st.experimental_memo.*") # 你的原有代码继续往下写 work_path = 'C:/Users/me/Desktop/webpage' IMG_SIZE = 512 image1 = load_dicom(f"{work_path}/images/1.2.826.0.1.3680043.1363_120.dcm") # ...后续代码保持不变
方法3:手动修改模块源码(非必要不推荐)
如果前两种方法都无效,可以直接修改streamlit-image-select的源码,替换内部的旧缓存API:
- 运行
pip show streamlit-image-select查看模块的安装路径(Location字段) - 进入该路径下的
streamlit_image_select文件夹,打开核心逻辑文件(通常是image_select.py) - 找到所有标注
@st.experimental_memo的代码行,替换为@st.cache_data - 保存修改后重启应用
注意:手动修改源码会在下次升级模块时被覆盖,因此仅作为最后备选方案。
内容的提问来源于stack exchange,提问作者Doyeon.K
相关产品推荐
相关产品推荐

