2013-09-25 3 views
0
currentPath = os.environ['PATH'] 
myPath = "/auto/sw/packages/bin" 
match = re.search(myPath, currentPath) 
if match is not None: 
    print 'PATH '+ match.group(0)+ 'FOUND' 
else: 
    os.environ['PATH'] = os.environ['PATH'] + myPath 
    print 'SET PATH: ' + os.environ['PATH'] 

В моем предыдущем коде выход SET PATH печатается правильно, но не меняет действительную переменную PATH, когда я проверяю использование «echo $ PATH». Что я здесь делаю неправильно? Быстрая помощь будет высоко оценена.Настройка переменных среды с использованием Python

+0

возможно дубликат [Как установить переменные окружения в Python] (http://stackoverflow.com/questions/5971312/how-to-set-environment-variables-in-python) – BartoszKP

+0

Вы пытаетесь 'echo $ PATH' в вашей оболочке после выхода из сценария Python? Если это так, просто невозможно изменить переменные среды таким образом. Вы можете изменить переменные среды в текущей области и в подпроцессах, но вы не можете изменить среду внешнего процесса/вызова. Изменения окружения распространяются только вниз, а ваш код Python работает в подпроцессе, выкованном из вызывающего процесса/внешней оболочки. –

+0

Да. Но я хочу изменить PATH из сценария. Должен быть какой-то способ сделать это. Я отправлю здесь, если мне это удастся. –

ответ

0

1, я думаю, что следующий код следует изменить.

os.environ['PATH'] = os.environ['PATH'] + myPath 

Новый один

os.environ['PATH'] = os.environ['PATH'] + ":" + myPath 

2, Вы можете запустить "эхо $ PATH" после того, как питон скрипт выхода. Попробуйте распечатать его в скрипте python, как следует.

os.system("echo $PATH") 
+0

Большое спасибо. Я попробовал эти два. Но все же его не показывает новый набор PATH, когда я выхожу из сценария. Я мог видеть из поисков, что установка переменной среды из скрипта не является прямой, как я думал. Копаем глубже, чтобы получить правильное решение. –

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