Наверняка вы замечали, что в 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
Happening now at the Russian House Brussels: the official Russian language proficiency exam with the Pushkin Institute.
Good luck to all participants!
Прямо сейчас в Русском доме проходит государственный экзамен по русскому языку совместно с Институтом Пушкина.
Желаем удачи участникам!
#RussianHouseBrussels#РусскийДомБрюссель#RFL#TRKI#PushkinInstitute
🎉Внимание, учителя Армении!
Стартует приём заявок на масштабный конкурс «ЛУЧШИЙ УЧИТЕЛЬ ПО-РУССКИ» — и это ваш шанс заявить о себе на всю страну!
📚 Участвовать могут не только преподаватели русского языка и литературы,
но и все педагоги, которые ведут предметы на русском языке —
из любого уголка Армении!
📌Что нужно сделать?
Просто заполнить регистрационную форму 👉https://forms.yandex.ru/u/6863d50290fa7b15c9cc4627/
🗓️ До 1 октября включительно!
🎓Каждому участнику — диплом,
а победителям — ценные призы или поездка в Россию!
Не упустите возможность показать свой профессионализм и любовь к русскому языку!
👥 Организаторы:
Представительство Россотрудничества в Армении
Институт русского языка им. А. С. Пушкина
Посольство РФ в РА
Министерство образования, науки, культуры и спорта РА
📢 Условия: https://disk.yandex.ru/d/YwZJetLFCabwlA
#ЛучшийУчительПоРусски#КонкурсУчителей#РусскийЯзык#Россотрудничество#УчителяАрмении#ОбразованиеРА#PushkinInstitute
@RSGovArmenia
🎉Внимание, учителя Армении!
Стартует приём заявок на масштабный конкурс «ЛУЧШИЙ УЧИТЕЛЬ ПО-РУССКИ» — и это ваш шанс заявить о себе на всю страну!
📚 Участвовать могут не только преподаватели русского языка и литературы,
но и все педагоги, которые ведут предметы на русском языке —
из любого уголка Армении!
📌Что нужно сделать?
Просто заполнить регистрационную форму 👉https://forms.yandex.ru/u/6863d50290fa7b15c9cc4627/
🗓️ До 1 октября включительно!
🎓Каждому участнику — диплом,
а победителям — ценные призы и поездка в Россию!
Не упустите возможность показать свой профессионализм и любовь к русскому языку!
👥 Организаторы:
Представительство Россотрудничества в Армении
Институт русского языка им. А. С. Пушкина
Посольство РФ в РА
Министерство образования, науки, культуры и спорта РА
📢 Условия: https://disk.yandex.ru/d/YwZJetLFCabwlA
#ЛучшийУчительПоРусски#КонкурсУчителей#РусскийЯзык#Россотрудничество#УчителяАрмении#ОбразованиеРА#PushkinInstitute
@RSGovArmenia
🌍 Институт Пушкина приглашает к участию в XXI Международной олимпиаде по русскому языку для зарубежных школьников им. В.Г. Костомарова
✅ Олимпиада имеет богатую историю, начавшуюся в 1972 году, и является одним из самых престижных мероприятий в области русского языка для зарубежных учащихся.
🏆 Олимпиада проводится в три этапа: онлайн-отбор, онлайн-полуфинал и очный финал в Москве. К участию приглашаются ученики старших классов зарубежных школ, изучающих русский язык как иностранный, ученики старших классов зарубежных школ с русским языком обучения, а также индивидуальные участники, изучающие русский язык самостоятельно. Регистрация открыта до 17 августа 2025 года на сайте https://olympiada.pushkininstitute.ru/XXI/
❗️ К участию в олимпиаде не допускаются школьники, имеющие вид на жительство, гражданство Российской Федерации или подавшие заявление о получении гражданства Российской Федерации.
📝 Участникам предстоит продемонстрировать свои знания в различных аспектах русского языка, литературы и культуры. Задания разработаны ведущими специалистами Института Пушкина и охватывают широкий спектр тем, от грамматики до страноведения России.
🎓 Победители и призеры олимпиады получат ценные награды, включая возможность бесплатного обучения в Институте Пушкина в течение двух недель по программам дополнительного образования.
@rossotrudnichestvo@rusembgreece@sootechestvennikigreece
#ИнститутПушкина#ОлимпиадаПоРусскомуЯзыку#РусскийЯзыкЗарубежом#PushkinInstitute#УчимРусский#RussianLanguageOlympiad#РусскийЯзык#РусскаяКультура#РусскийКакИностранный#RussianAsForeign#МеждународнаяОлимпиада