如何在Windows中的Python中执行os.execv()而不从控制台分离?

我在Windows 7上使用Python 2.6。我有Windows .cmd文件调用Python来运行CherryPy Web服务器(版本3.1.2)。 我通过在Windows CMD shell中的提示符下执行它来启动这个.cmd文件。 当CherryPy发现它的一个依赖文件已经改变时,它会重新启动。 在Windows的这个configuration中出现了一些问题,因为CherryPy用来重新启动的调用是

os.execv(sys.executable, args) 

但不能在.cmd文件上调用Python可执行文件。 我已经设法通过各种Python体操绕过这个问题,现在我已经通过调用(本质上)重新启动它,

 os.execv(sys.argv[0], args) 

但重新启动的进程是从键盘上分离的; 它会抓住Ctrl-C,然后我被问到

 Terminate batch job (Y/N)? 

但Y或NItypes不是被终止.cmd文件捕获,而是由Windows CMD shell捕获,并且它响应

 'Y' is not recognized as an internal or external command, operable program or batch file. 

那么,如何在Windows中设置一些东西来保持重启进程,在Unix中我称之为“前台”呢?

你可以像这个例子一样使用subprocess.call方法

 import subprocess retcode = subprocess.call(["ls", "-l"]) 

有关子进程类的更多信息,请参阅此链接:

子流程 – 子流程管理