python webbrowser.open(url)

Ger*_*ens 1 python

httpd = make_server('', 80, server)
webbrowser.open(url)
httpd.serve_forever()
Run Code Online (Sandbox Code Playgroud)

这是跨平台工作,除非我在putty ssh终端上启动它.如何在一个单独的进程中欺骗控制台打开w3m浏览器,以便它可以继续启动服务器?

或者,如果在没有x的shell上运行时无法跳过webbrowser.open?

Vin*_*n-G 6

也许使用线程?将服务器设置与主线程或browsweropen分开,如下所示:

import threading
import webbrowser

def start_browser(server_ready_event, url):
    print "[Browser Thread] Waiting for server to start"
    server_ready_event.wait()
    print "[Browser Thread] Opening browser"
    webbrowser.open(url)

url = "someurl"
server_ready = threading.Event()
browser_thread = threading.Thread(target=start_browser, args=(server_ready, url))
browser_thread.start()

print "[Main Thread] Starting server"
httpd = make_server('', 80, server)
print "[Main Thread] Server started"
server_ready.set()

httpd.serve_forever()
browser_thread.join()
Run Code Online (Sandbox Code Playgroud)

(将服务器设置放在主线程中让我抓住ctrl + c事件我认为)