擅长:python、mysql、java
<p>好吧,我终于明白了!这似乎有效:</p>
<pre><code>from subprocess import Popen
from win32process import DETACHED_PROCESS
pid = Popen(["C:\python24\python.exe", "long_run.py"],creationflags=DETACHED_PROCESS,shell=True).pid
print pid
print 'done'
#I can now close the console or anything I want and long_run.py continues!
</code></pre>
<p>注意:我添加了shell=True。否则,在子进程中调用print会给出错误“IOError:[Errno 9]错误的文件描述符”</p>
<p><code>DETACHED_PROCESS</code>是传递给底层WINAPI<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx" rel="nofollow noreferrer">CreateProcess</a>函数的<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms684863(v=vs.85).aspx" rel="nofollow noreferrer">Process Creation Flag</a>。</p>