代码是这样的:
os.execlp('python', 'python', 'child.py', #other args#) # this works
os.execlp('python', 'child.py', #other args#) # this doesn't work
我读过这个问题:python 中的 execlp() https://stackoverflow.com/questions/13439938/execlp-in-python
但我还是很困惑。答案说:
第一个参数是要执行的程序(在 PATH 中找到)。这
其余的是程序的 sys.argv 参数。
但是,如果我运行:python child.py 1 2 3
和sys.argv
这个过程的["child.py", "1", "2", "3"]
,其中python
不存在。那我为什么要加上python
作为第二个参数os.execlp
?
当python执行时,它会创建sys.argv
为你。该列表中的值是based根据操作系统传递给它的参数,但它离开 the sys.executable
该列表中的值。
换句话说,当调用Python时,它设置sys.argv
对一切但它有自己的可执行文件.
当你调用一个new可执行通过os.execlp()
,您仍然需要在其中包含 Python,因为这是操作系统将运行的可执行文件。您传递给的内容的前两个值os.execlp()
仍然需要,无论您在其中找到什么sys.argv
稍后的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)