在单独的线程上关闭 wxPython 应用程序会遇到 window 警报
Closing wxPython app on a separated thread runs into a window alert
我有一个 Flask-SocketIO 服务器,它在单独的线程中初始化 GUI。
if __name__ == '__main__':
if len(sys.argv) > 1 and sys.argv[1] == 'dev':
print "Running Flask-SocketIO on dev mode"
else:
print "Running Flask-SocketIO on production mode"
print 'Running Graphical User Interface...'
thread.start_new_thread(display_react.main, ())
print 'Initializing server'
socketio.run(app, debug=False)
GUI 基本上是使用 wxPython 的 cefpthon3 示例,但它不是普通的浏览器,它只显示服务器提供的特定页面。目前我希望在关闭 GUI 时关闭整个应用程序。为此,我在服务器上创建了一个路由(调用时)将关闭服务器。
@app.route('/shutdown', methods=['GET'])
def shutdown():
server_request.shutdown()
socketio.stop()
print "Trying to close..."
return 'Server shutting down...'
并且在关闭 wxPython 之前调用此路由。
但是,在服务器关闭之前出现此错误:
谁能帮我解决或隐藏这个问题?
wxPython 几乎总是必须是主线程,这很可能就是为什么您会在 wxIsMainThread
上看到这个断言的错误。一种比较简单的解决方法是将 wxPython 作为主线程/应用程序启动,并将其 运行 Flask 放在线程中。
我认为这样会更好。不过,您可以在 wxPython Google 组上询问其他解决方法。
我有一个 Flask-SocketIO 服务器,它在单独的线程中初始化 GUI。
if __name__ == '__main__':
if len(sys.argv) > 1 and sys.argv[1] == 'dev':
print "Running Flask-SocketIO on dev mode"
else:
print "Running Flask-SocketIO on production mode"
print 'Running Graphical User Interface...'
thread.start_new_thread(display_react.main, ())
print 'Initializing server'
socketio.run(app, debug=False)
GUI 基本上是使用 wxPython 的 cefpthon3 示例,但它不是普通的浏览器,它只显示服务器提供的特定页面。目前我希望在关闭 GUI 时关闭整个应用程序。为此,我在服务器上创建了一个路由(调用时)将关闭服务器。
@app.route('/shutdown', methods=['GET'])
def shutdown():
server_request.shutdown()
socketio.stop()
print "Trying to close..."
return 'Server shutting down...'
并且在关闭 wxPython 之前调用此路由。
但是,在服务器关闭之前出现此错误:
谁能帮我解决或隐藏这个问题?
wxPython 几乎总是必须是主线程,这很可能就是为什么您会在 wxIsMainThread
上看到这个断言的错误。一种比较简单的解决方法是将 wxPython 作为主线程/应用程序启动,并将其 运行 Flask 放在线程中。
我认为这样会更好。不过,您可以在 wxPython Google 组上询问其他解决方法。