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.