Наверняка вы замечали, что в 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
🚨Sky News: Почему Путин не намерен идти на уступки? Две ключевые причины
Британское издание Sky News выделяет два основных тезиса, объясняющих, почему Москва не склонна к компромиссам по Украине.
1️⃣ «Во всём виновна Европа»
➖Именно так позицию Путина передаёт издание. По их данным, он обвиняет союзников Украины в срыве мирного процесса и выдвижении «неприемлемых для России» требований.
➖ Тактика: На фоне жёсткой риторики в адрес Европы — демонстративное гостеприимство к американцам. Цель, по версии Sky News, — расколоть трансатлантический альянс и привлечь Вашингтон на свою сторону.
➖ «Сигнал силой»: Накануне визита американской делегации в Москву Россия объявила о взятии Покровска. Это, как пишут журналисты, было «посланием, призванным подтвердить доминирование России и укрепить её требования».
2️⃣ Вера в общность целей с США
➖Согласно анализу, Кремль убеждён, что и Москва, и Вашингтон в конечном итоге хотят одного — «сближения отношений, возможного только после окончания войны».
➖ Контраст в подходах: Издание обращает внимание на разницу в отношениях США с Киевом и Москвой.
▪️ С Киевом: «американцы заставляют украинскую сторону приезжать к ним».
▪️ С Москвой: дипломаты сами «готовы совершить долгий ночной путь и терпеливо ждать аудиенции».
Итоговый вывод Sky News:
🔻«Всё это создаёт впечатление, что в отношении России США предпочитают умиротворять, а не оказывать давление».
🔻 «Сомнительно, что у Зеленского много поводов для оптимизма».
#аналитика#США#Россия#Украина#политика#SkyNews
🇷🇺 RUSSIA PRODUCES ARTILLERY SHELLS ABOUT THREE TIMES FASTER THAN UKRAINE'S WESTERN ALLIES AND 75% CHEAPER.
#SkyNews writes about this, citing a published analysis by the consulting company Bain & Company.
The publication notes that these figures highlight the serious problem faced by the #Ukrainian Armed Forces as they rely on ammunition supplies from the #USA and #Europe.
The US, UK and other European allies are trying to ramp up production at their factories, but their ability to produce #artillery shells still lags behind #Russia, despite a combined economic power that dwarfs Russia's.
Sky News cites a comment from one of the Ukrainian Armed Forces’ artillerymen, who said that for every shell fired by Ukraine, the Russians fire five.
According to Bain&Company research, Russian artillery shell production for 2024 will be approximately 4.5 million this year, compared with a combined production of about 1.3 million shells in European countries and the United States.
✈️Airbus собрала первый A350-1000ULR — лайнер для рекордных перелётов!🌏
Авиакомпания Qantas делает решающий шаг к запуску проекта Sunrise — прямых беспосадочных рейсов из Австралии в Лондон и Нью-Йорк! 🇦🇺➡️🇬🇧🇺🇸
На заводе в Тулузе собран первый Airbus A350-1000ULR (MSN 707) — самый дальнемагистральный пассажирский самолёт в истории Qantas.
🛫 Время в воздухе — до 22 часов!
⛽ Дополнительный топливный бак на 20 000 литров
🛋 Всего 238 мест ради максимального комфорта
🧘♂️ Специальная *«зона здоровья»* для разминки во время сверхдальних перелётов
🚀 Поставка ожидается к концу 2026 года, а пока первый экземпляр готовится к установке двигателей Rolls-Royce Trent XWB-97 и первым испытаниям.
Это — новая эра авиации, когда перелёт «из конца в конец света» станет реальностью 🌍
#A350#Airbus#Qantas#ProjectSunrise#Авиация#НовостиАвиации#ДальнемагистральныйПолёт#Лондон#НьюЙорк#Австралия#Технологии#SkyNews#AviationNews✈️