> For the complete documentation index, see [llms.txt](https://treasuremaster.gitbook.io/python-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://treasuremaster.gitbook.io/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/upravlenie-processami/os.execlpe.md).

# os.execlpe ()

### os.execlpe ( *file*, *arg0*, *arg1*, *...*, *env* )

Функции семейства **os.exec\* ()** запускают новую программу, заменяя ей текущий процесс; они не возвращают управление обратно. В Unix новый исполняемый файл загружается в текущий процесс и будет иметь тот же идентификатор процесса, что и вызывающий. Об ошибках будут сообщаться как об исключениях OSError.

Текущий процесс заменяется немедленно. Открытые файловые объекты и дескрипторы не сбрасываются, поэтому, если в этих открытых файлах могут быть буферизованные данные, вы должны очистить их с помощью `sys.stdout.flush ()` или [os.fsync ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/operacii-s-failovymi-deskriptorami/os.fsync.md) перед вызовом функции **os.exec\*()**.

Варианты `'l'` и `'v'` функций **exec\*()** отличаются тем, как передаются аргументы командной строки. С вариантами `'l'`, пожалуй, легче всего работать, если количество параметров фиксировано при написании кода; отдельные параметры просто становятся дополнительными параметрами для функций **execl\*()**. Варианты `'v'` хороши, когда количество параметров является переменным, а аргументы передаются в виде списка или кортежа в качестве параметра ***args***. В любом случае аргументы дочернего процесса должны начинаться с имени выполняемой команды, но это не принудительно.

Варианты, которые включают `'p'` в конце (**execlp ()**, **execlpe ()**, **execvp ()** и **execvpe ()**), будут использовать переменную среды `PATH` для поиска файла программы ***file***. Когда среда заменяется (с использованием одного из вариантов **exec\*e**, обсуждаемых в соответствующих разделах), новая среда используется в качестве источника переменной `PATH`. Другие варианты, **execl ()**, **execle ()**, **execv ()** и **execve ()**, не будут использовать переменную `PATH` для поиска исполняемого файла; ***path*** должен содержать соответствующий абсолютный или относительный путь.

Для **execle ()**, **execlpe ()**, **execve ()** и **execvpe ()** (обратите внимание, что все они заканчиваются на `'e'`) параметр ***env*** должен быть отображением, которое используется для определения переменных среды для нового процесса (эти используются вместо среды текущего процесса); все функции **execl ()**, **execlp ()**, **execv ()** и **execvp ()** заставляют новый процесс наследовать среду текущего процесса.

Вызывает событие аудита `os.exec` с аргументами ***path***, ***args***, ***env***.

**Доступность:** Unix, Windows.

*Новое в версии 3.3:* добавлена поддержка указания пути в качестве дескриптора открытого файла для [execve ()](/python-docs/moduli-standartnoi-biblioteki-1/obshie-sluzhby-operacionnoi-sistemy/os/upravlenie-processami/os.execve.md).

*Изменено в версии 3.6:* Принимает объект, подобный пути (*path-like object* ).
