Нет, альтернативы нет, и это не может быть ошибкой Python.
В Windows отображение os.environ
инициализируется из _wenviron
global при запуске Python,(Переменные среды передаются процессу при его запуске, если вы позже изменили переменные среды, вам необходимо перезапустить процесс).Структура, которую Windows предоставляет Python, представляет собой UTF-16 с ключами всегда в верхнем регистре, значениями непрозрачного текста Unicode.
Python декодирует данные из объектов UTF-16 в объекты Python str
(unicode
в Python 2), исоздает отображение os.environ
из этого.Тогда это отображение просто поддерживает прописные буквы, больше ничего не меняется.os.getenv
- это вспомогательная функция, которая использует os.environ.get()
.Нет другого доступного или необходимого API.
Если вы видите непредвиденные данные, вы либо допустили ошибку при установке переменной, либо изменили переменную после того, как Python уже запущен.Достаточно просто смешать I
(столица Индии) и l
(строчная Лима);Лучше всего избегать таких запутанных символов, как 0
(номер ноль), O
(прописной Оскар), 1
(номер один) в целом.