Почему мое приложение 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")
Другие вопросы по тегам