Почему мое приложение Streamlit открывается несколько раз? - PullRequest
1 голос
/ 10 ноября 2019

Я пытаюсь запустить приложение 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 Ответ

1 голос
/ 13 ноября 2019

С 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")
...