Как читать значение переменной среды Windows в python?
Я пробовал это:
os.environ['MyVar']
Но это не сработало!
Есть ли способ, подходящий для всех операционных систем?
Ответ 1
Попробуйте использовать следующее:
os.getenv('MyVar')
В документации :
os.getenv(varname [, value])
Возвращает значение переменной среды varname, если оно существует, или значение, если оно не работает. Значение по умолчанию - None.
Доступность: большинство вариантов Unix, Windows
Итак, после тестирования:
>>> import os
>>> os.environ['MyVar'] = 'Hello World!' # set the environment variable 'MyVar' to contain 'Hello World!'
>>> print os.getenv('MyVar')
Hello World!
>>> print os.getenv('not_existing_variable')
None
>>> print os.getenv('not_existing_variable', 'that variable does not exist')
that variable does not exist
>>> print os.environ['MyVar']
Hello World!
>>> print os.environ['not_existing_variable']
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "/usr/lib/python2.4/UserDict.py", line 17, in __getitem__
def __getitem__(self, key): return self.data[key]
KeyError: 'not_existing_variable
Ваш метод будет работать, если существует переменная окружения. Разница с использованием os.getenv заключается в том, что он возвращает None (или заданное значение), а os.environ['MyValue'] дает исключение KeyError, когда переменная не существует.
Ответ 2
os.getenv('PATH')
Вы можете протестировать его с помощью вышеуказанной строки кода. Он отобразит все установленные пути.
Ответ 3
Возможно, вам придется перезапустить окна, чтобы читать переменную среды, которую вы установили через панель управления.