Наверняка вы замечали, что в Python есть удобная функция для получения переменной окружения
os.getenv(NAME)
И её "сестра" для создания или изменения переменных окружения
os.putenv(NAME, VALUE)
Но почему-то putenv() не работает как должно. Энвайромент не обновляется!
os.putenv('MYVAR', '1')
print(os.getenv('MYVAR'))
... и ничего 😴
Почему так?
На самом деле энвайромент обновляется, но это значение не добавляется в словарь os.environ.
Откройте исходник функции os.getenv(). Это просто шорткат для os.environ.get()
В то время как putenv() это built-in С-функция.
Словарь os.environ (или точней класс из MutableMapping) создаётся из энвайромента в момент инициализации. Функция putenv() самостоятельно его не изменяет.
В тоже время, когда вы создаёте или изменяете ключ в os.environ, автоматически вызывается putenv() в методе __setitem__().
То есть, технически putenv() всё делает верно, но в os.environ это не отражается. Можно проверить так:
>>> os.putenv('MYVAR', '123')
>>> os.system('python -c "import os;print(os.getenv(\'MYVAR\'))"')
123
Я объявил переменную в текущем процессе и вызвал дочерний процесс, который её унаследовал и получил в составе os.environ.
Аналогично при удалении переменной вызывается еще одна built-in функция unsetenv(), удаляющая переменную из системы.
Итого
▫️ Удобней всего явно обновлять переменные через os.environ
▫️ Есть способ неявно создать/удалить переменную через putenv/unsetenv, что не повлияет на os.environ но изменит энвайромент и передаст изменения сабпроцессам. Но так лучше не делать!
▫️os.environ это просто обертка для built-in функций putenv() и unsetenv().
#basic
🇧🇫🇳🇬 Это нигерийский военно-воздушный самолет C-130, который был вынужден совершить посадку в Бобо-Диулассо, Буркина-Фасо
По данным властей Буркина-Фасо, самолет перевозил "секретный груз", предположительно предназначенный для Республики Нигер.
Буркина-Фасо теперь отказывается освободить 11 нигерийских военнослужащих, находившихся на борту, до тех пор, пока Абуджа не объяснит, почему рейс вошел в воздушное пространство Буркина-Фасо без дипломатического разрешения.
🔹#Нигерия#БуркинаФасо#C130
📱Спасибо, что следите за новостями вместе с 🤨News!
➡️Поддержать канал Boostами
🇨🇴Военно-транспортный C-130 разбился в Колумбии
📌Самолёт Lockheed C-130 Hercules ВВС Колумбии потерпел крушение вскоре после взлёта из Пуэрто-Легисамо на юге страны
🔵На борту находились около 110 военнослужащих. По данным Reuters, с места катастрофы эвакуированы живыми 57 человек, в других источниках фигурирует цифра 71 – точные данные уточняются
🔵Самолёт упал примерно в 3 км от населённого пункта в районе амазонских джунглей у границы с Перу, спасательная операция продолжается. Министр обороны Педро Санчес назвал произошедшее «трагической аварией», президент Густаво Петро раскритиковал задержки в модернизации военной техники
🔵Причины катастрофы не установлены, расследование только начинается. C-130 Hercules – многоцелевой транспортник, который Колумбия эксплуатирует с конца 1960-х годов
Лёгкое небо
#aviation#news#aircrash#Колумбия#C130
✈️Военно-транспортный C-130 потерпел катастрофу в Боливии
📌Самолёт ВВС Боливии C-130 Hercules при посадке в аэропорту Эль-Альто (город-спутник Ла-Паса) выкатился за пределы ВПП, выехал на прилегающий проспект и столкнулся с автомобилями
🔵По предварительным данным, погибли от 15 до 20 человек, не менее 28-30 ранены. Повреждено около 15 машин. Из восьми членов экипажа большинство выжили, судьба одного уточняется
🔵Самолёт перевозил новые банкноты для Центробанка Боливии – купюры без серийных номеров, ещё не введённые в обращение. После крушения пачки денег рассыпались по дороге, местные жители начали их собирать, затрудняя работу спасателей. Полиция применила слезоточивый газ и водомёты, задержано более 10 человек
🔵Свидетели сообщают о сильном дожде, граде и плохой видимости в момент посадки. Точная причина катастрофы устанавливается, Минобороны Боливии начало расследование
Лёгкое небо
#aviation#news#Боливия#C130#aircrash
⚡️#Блиски_исток Према наводима локалних медија, током америчке операције спасавања обореног пилота F-15E на иранској територији, специјалне снаге САД уништиле су два сопствена транспортна авиона C-130.
ABC News навео да је уништење авиона урађено да летелице не би пале у руке Ирана. Након губитка два C-130, америчка команда је, како се наводи, била приморана да упути још три авиона ради извлачења рањеног пилота и заглављених припадника специјалних снага (#Кувајт).
📌 Ратно вазудхопловство преноси да се F-15E срушио у планинском подручју југоисточно од Исфахана, где је провођена операција потраге за другим чланом посаде. Један пилот је, по истим изворима, извучен истог дана, док CBS News наводи да је у акцији учествовало око 100 америчких специјалаца и десетине борбених авиона.
→ Извори: INTERFAX RU; ABC News; BBC; CBS News
🪖#Блиски_исток〣#Иран〣#САД〣#Кувајт〣#F15E〣#C130〣#Спецназ〣#Ваздухопловство
🇷🇸https://t.me/borbeni_efektivi
⚡️Ир-осовина водећа у емитовању појачане антиамеричке резонанце: Иранци, Ирачани, сада Ирци, сутра Ирокези**?......
#видео: Ирац (не Иранац) упао на аеродром „Шенон“ и секиром или чекићем разлупао амерички транспортни авион C-130, након чега је ухапшен.
** Још да у долини реке Сан Лоренс букне устанак....
→ Линк: /t.me/borbeni_efektivi
→ Извор: /t.me/borbeni_efektivi
🪖#Ирска〣#Шенон〣#C130〣#САД〣#авијација〣#инцидент〣#април_2026
🇷🇸https://t.me/borbeni_efektivi