首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BottlePy和PyWebView

BottlePy和PyWebView
EN

Stack Overflow用户
提问于 2017-01-31 09:42:31
回答 1查看 811关注 0票数 0

我正在尝试在瓶子中建立一个小应用程序,并认为我可以尝试使用pywebview作为查看器。当我运行下面的文件时,我得到了webview窗口的两个实例。第一个显示页面,第二个显示旋转轮光标。关闭第二个窗口就是关闭web服务器,但不是杀死线程。

为什么会出现两个窗口?

代码语言:javascript
复制
import sys
import threading

from bottle import Bottle, ServerAdapter
import webview


class MyWSGIRefServer(ServerAdapter):
    server = None

    def run(self, handler):
        from wsgiref.simple_server import make_server, WSGIRequestHandler
        if self.quiet:
            class QuietHandler(WSGIRequestHandler):
                def log_request(*args, **kw): pass
            self.options['handler_class'] = QuietHandler
        self.server = make_server(self.host, self.port, handler, **self.options)
        self.server.serve_forever()

    def stop(self):
        # self.server.server_close() <--- alternative but causes bad fd exception
        self.server.shutdown()

app = Bottle()
listen_addr = 'localhost'
listen_port = 8080

server = MyWSGIRefServer(host='localhost', port=8080)

@app.route('/')
def hello():
    return "Hello World!"




def start_server():
    app.run(server=server, reloader=True)


try:
    print(threading.enumerate())
    serverthread = threading.Thread(target=start_server)
    serverthread.daemon = True
    print("starting web server")
    serverthread.start()
    print("starting webview")
    webview.create_window('bottle test', "http://localhost:8080/")
    print("webview closed. closing server")

    sys.exit()
    server.stop()
except Exception as ex:
    print(ex)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-18 08:24:51

问题是在运行服务器时使用reloader=True。将其设置为False可防止出现第二个窗口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41948437

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档