2015-07-30 4 views
0

У меня есть трудное время для доступа к переменным среды в скрипте Python, но эти переменные среды создаются сценарием оболочки C. Для дальнейшей разработки на мой вопрос, это то, что я делаю:Доступ к переменным окружения в Python, созданным сценарием оболочки C

call.subprocess(['csh_script_that_sets_envar_abc.csh']) 

print os.environ.get("abc") 

Результат:

None 

Почему сценарий C оболочка не может установить среду в сценарии Python.

+3

Вы не можете. Для текущего процесса и всех подпроцессов задана переменная окружения. Вы не можете просто установить среду других случайных процессов. Вам нужно будет сообщить значение как результат или использовать другую форму IPC, такую ​​как сокет. – Carpetsmoker

ответ

1

Вкратце, нет никакого разумного способа для дочернего процесса (сценарий оболочки C) установить переменную среды в родительском процессе (код Python). Процессы дочерних процессов не могут повлиять на такого родителя.

Это не свойственно оболочке Python или C как таковой; это свойство родительских и дочерних процессов в Unix-подобных системах.

Смежные вопросы