一千萬個為什麽

搜索

python webbrowser.open(url)

httpd = make_server('', 80, server)
webbrowser.open(url)
httpd.serve_forever()

這適用於跨平臺,除非我在putty ssh終端上啟動它。 如何在一個單獨的進程中欺騙控制臺打開w3m瀏覽器,以便它可以繼續啟動服務器?

或者,如果在沒有x的shell上運行時無法跳過webbrowser.open?

最佳答案

也許用線程?將服務器設置與主線程或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()

(將服務器設置放在主線程中讓我抓住ctrl + c事件我認為)

轉載註明原文: python webbrowser.open(url)