首页 > 解决方案 > 为什么我的 Streamlit 应用程序会多次打开?

问题描述

我正在尝试使用启动 Streamlit 应用程序

import os
os.popen("streamlit run stockXchange.py")

当我运行这段代码时,会有无数个流光窗口,每隔 3 秒左右就会一个接一个地弹出。阻止这些窗口弹出的唯一方法是完全关闭输出窗口。(我正在使用 PyCharm)

这是我的代码:

import os
import streamlit as st
class Streamlit:


    def __init__(self):
        Streamlit.setup()


    def setup(self):
        st.title("StockXchange GUI")
        query = st.text_input("Enter company name:")
        if st.button("Go"):
            #calls the application function
            load(query)



if __name__ == "__main__":
    print(starttext)
    print(os.popen("streamlit run stockXchange.py").read())
    #Workaround 'missing 1 required positional argument: 'self'' Error
    Streamlit.setup(Streamlit)

我希望只弹出一个窗口,而不是无限数量的窗口。

有没有什么办法解决这一问题?

标签: pythonoperating-systemstreamlit

解决方案


使用 Streamlit,您无需创建类包装器即可运行您的 Streamlit 应用程序。

假设您stockXchange.py是流光应用程序,那么它应该从命令行或PyCharm 控制台运行,如下所示:

streamlit run stockXchange.py

您班级中的以下所有行都应该进入该文件:

st.title("StockXchange GUI")
query = st.text_input("Enter company name:")
if st.button("Go"):
    #the rest of stockXchange.py pertaining to the query

您获得无限流光窗口的原因是以下行在程序执行方面创建了一个无限循环:

if __name__ == "__main__":
    os.popen("streamlit run stockXchange.py")

推荐阅读