python - 为什么我的 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)
我希望只弹出一个窗口,而不是无限数量的窗口。
有没有什么办法解决这一问题?
解决方案
使用 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")
推荐阅读
- python - Python 不会读取 CSV 文件的所有行
- javascript - 有没有更好的写法?
- bean-io - 如何使用bean io将固定长度文件写入CSV文件,所有值都出现在记录的不同列中
- mule - 数据处理慢 mulesoft 批处理
- javascript - ZAP 脚本的行为不一致
- java - form.submit() 将在表单内触发 double
- javascript - 将 NodeJS 数据传递给 Javascript
- java - catalina.out Tomcat9 中的奇怪输出
- python - 单击统计按钮后如何过滤与同一模型相关的特定记录
- angular - 如何在 Angular 8 中通过 angular-builder 自定义网络工作者?