当前位置: 首页 > 工具软件 > pywebview > 使用案例 >

python webview_除非我打开两个webview,否则Pywebview会阻止flask应用程序

查学文
2023-12-01

我用一个相当简单的flask后端构建了一个python桌面webapp,目前我只通过Chrome提供服务。我试图用pywebview打包它,但是遇到了一个集成的障碍。在

我在包的主文件中有如下代码: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()

这几乎是系统性的失败,窗口显示为空白,后端不响应任何内容(包括来自单独桌面浏览器的请求)。在

我无意中发现,如果我启动两个webview线程,它总是有效的:

^{pr2}$

是什么引起的?我对Python中线程的理解相当有限,所以我不知道该去哪里看看。这可能是pywebview中的一个bug,还是我的线程出了问题?在

我也对webview部分的替代方案持开放态度,但我希望保留python/flask部分,因为应用程序已经可以正常工作了。在

 类似资料: