저는 크롬을 통해 현재 간단하게 제공되는 매우 간단한 플라스크 백엔드로 파이썬 데스크톱 웹 앱을 만들었습니다. 내가 pywebview를 사용하여 패키지하려고하지만, intestesting로드 블록으로 만났다.Pywebview는 두 개의 webviews를 열지 않는 한 플라스크 앱을 차단합니다.
내 패키지의 기본 파일에 다음과 같습니다 코드가이 거의 체계적으로 실패
import os
import sys
from flasher import app
import httplib
import webview
import threading
def start_prod_server():
runserver(debug=False, reloader=False)
def start_gui():
webview.create_window("MyAppName", "http://localhost:5000", height=1000)
def runserver(debug=True, reloader=False):
port = int(os.environ.get('PORT', 5000))
url = "http://localhost:{}".format(port)
print("ready!")
app.run(host='::', port=port, debug=debug, use_reloader=reloader)
if __name__ == '__main__':
t = threading.Thread(target=start_prod_server)
t.daemon = True
t.start()
# This never works
threading.Timer(1.5, start_gui).start()
sys.exit()
을 창 빈 나타나 백엔드는 요청을 포함하여 (아무것도에 응답하지 않습니다 별도의 데스크탑 브라우저). 이 원인이 될 수 무엇
if __name__ == '__main__':
t = threading.Thread(target=start_prod_server)
t.daemon = True
t.start()
# This works every time
threading.Timer(1.5, start_gui).start()
threading.Timer(1.5, start_gui).start()
sys.exit()
:
가 나는 두 개의 웹보기 스레드를 시작하면, 항상 작동 우연히 발견? 파이썬에서의 스레딩에 대한 나의 이해는 상당히 제한되어 있으므로 어디에서 볼 것인지 잘 모르겠습니다. 이것은 pywebview의 버그 일 가능성이 있습니까? 아니면 스레드에 문제가 있습니까?
나는 또한 webview 부분에 대한 대안에 대한 제안을하지만, 응용 프로그램이 이미 잘 작동하므로 파이썬/플라스크 부분을 유지하려고합니다.