python启动进程有很多方式,有阻塞类型的和非阻塞类型的。使用subprocess中的Popen会以非阻塞形式来启动进程,而subprocess中的call会以阻塞方式来运行,下面是我写的一个启动python文档查看器后自动启动浏览器的脚本
#coding=utf-8 __doc__ = ''' 打开python的标准文档,并启动浏览器浏览 ''' from subprocess import call,Popen import pydoc import time import os #配置选项 PORT = 9999 JZ_BROWSER = r'C:\Users\Administrator\AppData\Roaming\hao123JuziBrowser\hao123Juzi.exe' def start_browser(doc_server): cmd = '%s %s' %(JZ_BROWSER, 'http://localhost:%d' % (PORT,)) #不可以直接使用shell.call,会阻塞进程,从而导致无法服务 #call(cmd, shell = False) #os.popen(cmd) Popen(cmd) print('Document start working....') pydoc.serve(PORT, callback = start_browser)