Když je python spuštěn, vytvoří sys.argv pro tebe. Hodnoty v tomto seznamu jsou založené na argumentech, které mu předá operační systém, ale nevypne sys.executable hodnotu z tohoto seznamu.
Jinými slovy, když je vyvolán Python, nastaví sys.argv ke všemu ale je to vlastní spustitelný soubor .
Když vyvoláte nové spustitelný přes os.execlp() , stále do toho musíte zahrnout Python, protože to je spustitelný soubor, který OS poběží. První dvě hodnoty toho, co předáváte os.execlp() jsou stále vyžadovány, ať už najdete v sys.argv později.
Druhá python je název pro python, může to být jakýkoli řetězec, ale musí tam být.
Viz druhý odstavec z http://docs.python.org/3/library/os.html?highlight=os.exec#process-management:
Různé funkce exec* přebírají seznam argumentů pro nový program načtený do procesu. V každém případě je první z těchto argumentů předán novému programu jako jeho vlastní název, nikoli jako argument, který uživatel zadal na příkazovém řádku. Pro programátora v jazyce C je to argv[0] předávané hlavní() programu. Například os.execv('/bin/echo', ['foo', 'bar']) vytiskne pruh pouze na standardní výstup; foo se bude zdát ignorováno.