все 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Сообщить о неточности