У меня есть небольшое приложение Python, запущенное через subprocess.Popen
, которое принимает некоторые параметры в виде переменных среды. Я делаю это, передавая структуру окружения в вызов Popen
. Затем программа считывает переменные через os.getenv
.
Вернее, раньше так их читали. В Windows все работало нормально. Но на наших серверах FreeBSD os.getenv
возвращает None
для всех параметров, которые мы передали. Странно то, что os.environ
имеет значения просто отлично — и, действительно, простое переключение всех вызовов os.getenv('foo')
на os.environ['foo']
заставило все отлично работать на обоих] платформы.
Почему эти значения различаются? Когда одно лучше другого?