Streamlit:线程“ThreadPoolExecutor-8_0”:缺少 ScriptRunContext

问题描述 投票:0回答:1

我正在尝试使用 python concurrent.futures.ThreadPoolExecutor() 为给定的元数据运行“摄取”函数的多个实例。 “final”是一个元组列表,其中保存所调用函数的参数值。

根据现有的讨论,我安装了streamlit==1.12.0来使用add_script_run_ctx()

调试信息 Streamlit版本:1.12.0 Python版本:3.9.13 管道环境

没有streamlit依赖的原始python脚本(工作正常):

with concurrent.futures.ThreadPoolExecutor() as executor:
    executor.map(lambda f: ingestion(*f), final)

代码片段:

from streamlit.runtime.scriptrunner import add_script_run_ctx
    with concurrent.futures.ThreadPoolExecutor() as executor:
        abc = executor.map(lambda f: ingestion(*f), final)
        add_script_run_ctx(abc)

预期行为:

代码应进入“摄取”函数并迭代“最终”列表中存在的元组。

实际行为:

线程“ThreadPoolExecutor-8_0”:缺少 ScriptRunContext ‘generator’对象没有属性‘streamlit_script_run_ctx’

python multithreading concurrency streamlit concurrent.futures
1个回答
0
投票

你找到解决办法了吗?

© www.soinside.com 2019 - 2024. All rights reserved.