Наверняка вы замечали, что в 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
В Липецкой области сотрудникам бюджетных учреждений рекомендовали пройти на портале «Госуслуги» опрос об осенних довыборах в Госдуму. Помимо осведомленности о факте голосования и желания в нем поучаствовать у граждан интересуются, за кого из кандидатов они намерены голосовать. В избиркоме говорят, что опрос не нарушает закон, а в Минцифры уверяют, что доступа к персональным данным его заказчики не получат, — Коммерсант. #briefly
На российском рынке возникает дефицит полуприцепов-рефрижераторов для автотранспорта, в которых возят продукты питания, лекарства и другие товары, требующие низких температурных режимов. По оценкам, рынок прицепов-рефрижераторов в России в докризисное время достигал 4000 шт. в год. Россия была крупнейшим рынком Европы по продаже полуприцепов и занимала 15% в регионе EMEA (Европа, Ближний Восток, Африка). Но после введения антироссийских санкций весной 2022 г. объем импорта техники стал снижаться, – Ведомости. #briefly
EUreporter: После начала СВО официальные лица США и НАТО подчеркнули важность защиты Западных Балкан от российского вмешательства и пагубного влияния. Россия использует свои энергетические и природные ресурсы в качестве геополитического инструмента, одновременно поддерживая правые политические партии и ультраправые группы в регионе. Сербия является ближайшим европейским союзником России, а в Черногории, напротив, в 2016 году произошла попытка переворота при поддержке РФ. Как выяснилось потом, попавший под санкции российский олигарх расширял свое влияние в стране от имени Кремля. Албания и Северная Македония были менее уязвимы для российского вмешательства из-за их ограниченной зависимости от российских энергоносителей и отсутствия культурных связей. Однако Россия пытается оказывать злонамеренное влияние на эти страны с помощью различных средств, таких как финансирование оппозиционных партий и нападения на сотрудников служб безопасности и политических деятелей. Имеются доказательства того, что российские бизнесмены, связанные с Кремлем, осуществляли платежи жене бывшего президента Албании. В Северной Македонии российские агенты пытались завербовать бывших и действующих военных и сотрудников министерства внутренних дел для продвижения российских интересов. #briefly@briefsmi
Ведомости: Россиянам предложили дать возможность ежегодно оценивать депутатов всех уровней, мэров и губернаторов (для них существует правительственная система KPI) с помощью портала «Госуслуги». Такой законопроект в среду, 15 марта, планирует внести в Госдуму фракция «Новые люди». Депутаты предлагают внести поправки в закон о статусе сенатора и депутата Госдумы, в закон об общих принципах организации публичной власти в субъектах и в закон о местном самоуправлении. #briefly
#briefly
О чем говорил Токаев в Жетысу с общественностью и что пообещал? Рассказываем👇
- Объяснил, почему появился новый регион: чтобы повысить эффективность работы местных органов управления;
- Велел провести геологоразведку области, ибо ее недра могут хранить от 50-100 тысяч тонн лития. Для их разработки нужны инвестиции;
- Поручил интегрировать Е-очереди на погранпунктах «Алаколь» и «Нұр жолы», для разгрузки грузового авто;
- Заявил о создании лаборатории, аккредитованной по стандартам Китая. Она увеличит экспорт в КНР;
- Поручил срочно запустить Аксуский сахарный завод. И привлечь других инвесторов, если нужно;
- Порекомендовал изучить голландский опыт: с территорией в 3 раза меньше, чем Жетысу, войти в топ-3 мировых экспортеров агропромышленной продукции;
- Считает, что стандарты «халал» пора внедрять в отечественном агропроме и на зерновые, овощи, фрукты и прочую снедь.
#планы
- Построить газопровод «Талдыкорган – Ушарал», он обеспечит 3 района голубым топливом, где живут 150 тыс. человек;
- Отреставрировать 15 аварийных мостов в регионе;
- Проложить дорогу к самому высокому водопаду «Бурхан Булак» в Центральной Азии;
- Достроить +3 новые школы к тем 12-ти, что уже строятся;
- Создать филиал крупного зарубежного технологического вуза;
- Построить модульные комплексы под медпункты в 40 сёлах до 2024 г.;
- Возвести лыжно-биатлонный комплекс для подготовки чемпионов и роста тур-привлекательности области.
@sluhmaker
😊 These two adverbs seem similar, but they’re quite different! 💡 Here’s a quick tip from Sian! 🤓 Now, complete the sentence:
George only came in _____ to pick up his jacket - he’d left it here yesterday.
1. briefly
2. shortly
🤔 Want to learn more? 🤩 Here’s a useful lesson on adverbs. Link in bio.
#learnenglish#englishtips#ELT#ielts#grammar#adverbs#briefly#shortly#confusingwords