Wenn Python ausgeführt wird, erstellt es sys.argv
für dich. Die Werte in dieser Liste sind basiert auf den vom Betriebssystem übergebenen Argumenten, aber lässt es weg die sys.executable
Wert aus dieser Liste.
Mit anderen Worten, wenn Python aufgerufen wird, setzt es sys.argv
zu allem aber es ist eine eigene ausführbare Datei .
Wenn Sie eine neue ausführbar über os.execlp()
, müssen Sie noch Python darin einschließen, da dies die ausführbare Datei ist, die das Betriebssystem ausführt. Die ersten beiden Werte von was Sie a übergeben an os.execlp()
sind immer noch erforderlich, was auch immer Sie in sys.argv
finden später.
Die zweite Python ist ein Name für Python, es kann eine beliebige Zeichenkette sein, aber sie muss vorhanden sein.
Siehe zweiter Absatz von http://docs.python.org/3/library/os.html?highlight=os.exec#process-management:
Die verschiedenen exec*-Funktionen nehmen eine Liste von Argumenten für das neue Programm, das in den Prozess geladen wird. In jedem Fall wird das erste dieser Argumente als eigener Name an das neue Programm übergeben und nicht als Argument, das ein Benutzer möglicherweise in einer Befehlszeile eingegeben hat. Für den C-Programmierer ist dies das argv[0], das an main() eines Programms übergeben wird. Beispielsweise wird os.execv('/bin/echo', ['foo', 'bar']) nur bar auf der Standardausgabe ausgeben; foo scheint ignoriert zu werden.