Python Glossary English

Python 3.8+Linux · macOSosфункция

os.posix_spawnp

os — запуск программ (spawn)

Как posix_spawn, но программа ищется в PATH. Доступно на Unix.

Синтаксис

os.posix_spawnp(...)

Отличается от posix_spawn поиском программы по PATH — так же, как execvp в C, то есть по PATH вызывающего процесса, а не переданного env. Этим она расходится с os.execvpe, который ищет по PATH из нового окружения. Для предсказуемости передавайте полный путь из shutil.which.

Примеры

import os
pid = os.posix_spawnp('echo', ['echo', 'привет'], os.environ)  # → ? только Unix: находит echo в PATH, возвращает PID потомка, например 12345
print(os.waitpid(pid, 0)[1])  # → ? только Unix: 0 — потомок напечатал «привет» и завершился успешно
pid = os.posix_spawnp('sh', ['sh', '-c', 'exit 3'], {'PATH': '/bin:/usr/bin'})  # → ? только Unix: программу ищут по PATH вызывающего процесса, а не по env — env получит только потомок; он выйдет с кодом 3
os.posix_spawnp('нет-такой-программы', ['нет-такой-программы'], os.environ)  # → FileNotFoundError: в PATH ничего не найдено

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности