Python を実行すると、 sys.argv
が作成されます あなたのために。そのリストの値はベースです オペレーティングシステムから渡された引数に基づいていますが、オフ sys.executable
そのリストからの値。
つまり、Python が呼び出されると、sys.argv
が設定されます。 ただし、それは独自の実行可能ファイル .
new を呼び出したとき os.execlp()
経由で実行可能 、OSが実行する実行可能ファイルであるため、Pythonを含める必要があります。 os.execlp()
に渡すものの最初の 2 つの値 sys.argv
にあるものは何でも、まだ必要です
2 番目の python は python の名前で、任意の文字列にすることができますが、そこにある必要があります。
2 番目の段落を参照してください http://docs.python.org/3/library/os.html?highlight=os.exec#process-management の:
<ブロック引用>さまざまな exec* 関数は、プロセスにロードされた新しいプログラムの引数のリストを取ります。いずれの場合も、これらの引数の最初のものは、ユーザーがコマンド ラインで入力した引数としてではなく、独自の名前として新しいプログラムに渡されます。 C プログラマの場合、これはプログラムの main() に渡される argv[0] です。たとえば、os.execv('/bin/echo', ['foo', 'bar']) は標準出力にバーのみを出力します。 foo は無視されるようです。