在Python中启动简单web服务器并同时启动浏览器

在Python中启动简单web服务器并同时启动浏览器,python,webserver,nonblocking,wsgiref,Python,Webserver,Nonblocking,Wsgiref,我想在本地启动一个简单的web服务器,然后启动一个刚刚提供url的浏览器。这是我想写的东西 from wsgiref.simple_server import make_server import webbrowser srv = make_server(...) srv.blocking = False srv.serve_forever() webbrowser.open_new_tab(...) try: srv.blocking = True except KeyboardInte

我想在本地启动一个简单的web服务器,然后启动一个刚刚提供url的浏览器。这是我想写的东西

from wsgiref.simple_server import make_server
import webbrowser

srv = make_server(...)
srv.blocking = False
srv.serve_forever()
webbrowser.open_new_tab(...)
try:
  srv.blocking = True
except KeyboardInterrupt:
  pass
print 'Bye'

问题是,我找不到为wsgiref简单服务器设置
阻塞
选项的方法。默认情况下,它处于阻塞状态,因此浏览器只有在我停止后才会启动。如果我先启动浏览器,请求尚未处理。我更喜欢使用标准库中的http服务器,而不是像tornado这样的外部服务器。

您要么必须在服务器上生成一个线程,以便继续控制流,要么必须使用两个python进程

未经测试的代码,您应该了解


class ServerThread(threading.Thread):

    def __init__(self, port):
        threading.Thread.__init__(self)

    def run(self):
        srv = make_server(...)
        srv.serve_forever()

if '__main__'==__name__:
    ServerThread().start()
    webbrowser.open_new_tab(...)