Mat*_*ner 9 python windows windows-xp exec python-3.x
我有一个调用os.execvp另一个Python实例的脚本.执行此操作后,我似乎附加到一个cmd.exe实例,而不是我刚刚创建的Python实例.然而,Python实例会响应Ctrl+C.
H:\bin>Python 3.2.1 (default, Jul 10 2011, 21:51:15) [MSC v.1500
32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print('hi')
Can't find file ('hi')
H:\bin>
H:\bin>
KeyboardInterrupt
>>> echo hi
hi
Run Code Online (Sandbox Code Playgroud)
致电exec:
from sys import argv
os.execvp('python', argv)
Run Code Online (Sandbox Code Playgroud)
如何根据Linux上可能看到的行为将原始Python实例替换为新实例?
在 Unix 上,执行二进制文件分为两个阶段 - fork(3)克隆当前进程,exec(3)将可执行文件加载到地址空间。在 Windows 上,只有CreateProcess与 fork+exec 执行相同的操作。
为了可移植性,您最好的选择是使用subprocess.Popen(与 os.* 对应物不同,它在 Windows 上也进行正确的文件名引用),如http://docs.python.org/library/subprocess.html#replacing-the-os-产卵家族
| 归档时间: |
|
| 查看次数: |
3783 次 |
| 最近记录: |