Python Glossary Русский

Python 3.8+Linux · macOSosfunction

os.posix_spawnp

os — running programs (spawn)

Like posix_spawn, but the program is looked up in PATH. Availability: Unix.

Syntax

os.posix_spawnp(...)

It differs from posix_spawn by searching PATH for the program — the same way execvp does in C, i.e. using the calling process's PATH rather than the env you pass. That sets it apart from os.execvpe, which searches the new environment's PATH. For predictability pass a full path from shutil.which.

Examples

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 ничего не найдено

See also

Common errors

Open in the full glossarydocs.python.orgReport an inaccuracy