os.getenv возвращает None вместо правильного значения

У меня есть сложная программа, которую я не могу опубликовать, и у меня нет конкретного рабочего примера. Я попытаюсь объяснить проблему, возможно, кто-то столкнулся с этим раньше.

На оболочке LINUX я определил переменную окружения:

> export MY_TEST_ENV=4711 > echo $MY_TEST_ENV > 4711 

Внутри сложного кода я хочу получить эту переменную с

 print os.getenv('MY_TEST_ENV') 

который всегда возвращает None . Если я создаю тестовый скрипт для проверки этого поведения, даже с классами в разных файлах, я всегда получаю желаемое поведение (т.е. os.getenv('MY_TEST_ENV') возвращает правильное значение 4711 ).

Код запускается как 'sudo'.

Какие идеи могут быть причиной?

One Solution collect form web for “os.getenv возвращает None вместо правильного значения”

Скорее всего, способ, которым вы вызываете процесс Python, заставляет вас потерять среду. Если вы экспортируете переменную в запущенную оболочку, и сразу после этого вызовите рассматриваемый процесс Python в той же оболочке, эта переменная среды обязательно должна быть доступна для этого процесса Python. Чтобы помочь вам отладить эту проблему: вместо рассматриваемого кода ( print os.getenv('my...') ), распечатайте всю среду с помощью print os.environ . Из результата вы сможете сделать вывод о том, что произошло с вашей средой.

  • Возвращаемое значение вызова функции system () в C ++, используемое для запуска программы Python
  • Скрипт сценария Upstart python
  • Можем ли мы использовать код C в Python?
  • SWIG C-to-Python Int Array
  • Простая проблема развертывания Python - целый мир боли
  • Определите, запущен ли python в Ubuntu Linux
  • Получить ассоциацию файлов в Python
  • Как установить привязки Python из APT-пакета?
  • Python - лучший язык программирования в мире.