我怎样才能清除特定的 streamlit 缓存?

how can I clear specific streamlit cache?

我 运行 streamlit 有一些缓存的脚本。

当我使用以下代码时,它会清除所有缓存:

from streamlit import caching

caching.clear_cache()

我只想清除特定缓存。我该怎么做?

这目前(不容易)可行。

这是一个可选的解决方案,可以应用于某些情况:

您可以使用 allow_output_mutation 选项:

import streamlit as st

@st.cache(allow_output_mutation=True)
def mutable_cache():
    return some_list

mutable_object = mutable_cache()

if st.button("Clear history cache"):
    mutable_object.clear()

我将返回的缓存对象写为列表,但您也可以使用其他对象类型(然后您必须替换特定于列表的 clear 方法)。

更多信息请查看the answers I got in the streamlit community forum