10

コードは次のようになります。

os.execlp('python', 'python', 'child.py', #other args#)  # this works

os.execlp('python', 'child.py', #other args#)  # this doesn't work

私はこの質問を読みました: execlp() in python

しかし、私はまだ混乱しています。答えは言った:

最初の引数は、実行するプログラムです (PATH 上にあります)。残りは、プログラムへの sys.argv 引数です。

ただし、次を実行するpython child.py 1 2 3と、sys.argvこのプロセスの は になり["child.py", "1", "2", "3"]pythonは存在しません。pythonでは、なぜの 2 番目のパラメーターとして追加する必要があるのos.execlpでしょうか。

4

3 に答える 3

11

python を実行すると、自動的に作成sys.argvされます。そのリストの値は、オペレーティング システムから渡された引数に基づいています、そのリストの値は省略さsys.executableれています。

つまり、Python が呼び出されると、独自の executable 以外のsys.argvすべてに設定されます。

を介して新しい実行可能ファイルを呼び出すときos.execlp()は、OS が実行する実行可能ファイルに Python を含める必要があります。パス先の最初の 2 つの値は、後でos.execlp()見つけたものに関係なく、引き続き必要です。sys.argv

于 2013-01-05T17:30:06.070 に答える