Python Glossary English

все Python 3osфункция

os.execle

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

Как execl, но с окружением (последний аргумент — словарь env).

Синтаксис

os.execle(...)

Последний аргумент — словарь окружения, а не очередной аргумент программы: легко передать его не на то место. Окружение заменяется целиком, поэтому PATH и прочее нужно включить явно. Путь к программе задаётся полностью: поиска по PATH у вариантов без буквы p нет.

Примеры

import os
env = {'GREETING': 'привет', 'PATH': '/usr/bin:/bin'}
os.execle('/bin/sh', 'sh', '-c', 'echo $GREETING', env)   # → ? только Unix: процесс замещается на sh и печатает «привет» — переменная взята из переданного env
os.execle('/usr/bin/env', 'env', {})   # → ? только Unix: новый процесс стартует с пустым окружением, env не печатает ни строки
os.execle('/bin/sh', 'sh', '-c', 'echo $GREETING')   # → AttributeError: 'str' object has no attribute 'keys' — последний аргумент execle обязан быть словарём окружения, а не аргументом команды
os.execl('/bin/sh', 'sh', '-c', 'echo $GREETING')   # → ? только Unix: у execl своего env нет — программа наследует окружение текущего процесса

См. также

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

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