2014-11-14 1 views
0

Как вы можете получить список переменных среды для текущего пользователя («пользовательские переменные») с использованием Python?Переменные окружения для текущего пользователя с Python

os.environ() возвращает системные переменные, и для их изменения требуется доступ администратора.

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

+0

Вы хотите изменить PATH var только для своей программы или хотите изменить PATH пользователя навсегда? –

+0

Не уверен, что вы имеете в виду. Мне нужно добавить папку в путь, и есть 2 варианта (2 переменные PATH): один в «системных переменных», требующий прав администратора для изменения, и один в «пользовательских переменных», который не – KKO

ответ

2

Это неправильно. os.environ возвращает среду текущего процесса. На этом уровне нет понятия пользовательских или системных переменных.

Вы можете, конечно, изменить любую из этих переменных окружения. Для PATH просто сделать:

os.environ['PATH'] = new_path 

Но вы только изменения текущего процесса среды. Это означает, что эта новая среда будет использоваться текущим процессом и всеми его дочерними элементами, но исчезнет в конце процесса.

Там нет переносимого способа изменить среду вызова оболочки

Во всяком случае в окнах, вы можете изменить постоянные переменные окружения с помощью команды setx. Например, если вы хотите установить на изменение среды пользователя переменной FOO в bar, вы могли бы сделать в питон скрипт:

import os 
os.system("setx FOO bar") 

Но это изменение будет использоваться только процессами начинается с Windows Explorer, после того, как команда была казнены. В частности, ни среда сценария python, ни имя вызывающего cmd.exe, если они будут изменены, будут изменены.

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

  • Нет связанных вопросов^_^