Почему мое приложение 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)
Я хочу, чтобы выскакивало только одно окно, а не бесконечное количество окон.
Есть ли способ исправить это?
1 ответ
С 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")