Skip to main content
 首页 » 编程设计

python webbrowser.open(url)

2025年05月04日34dudu

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 事件)