Наверняка вы замечали, что в 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
⏸A powerful video by our students raising awareness about the dangers of air pollution.
#AirQuality#Sustainability#EcoEducation#GreenUniversity#ActNow
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube
🌿Scientific and Practical Seminar within the “Yashil bog‘lar” Project
🔴A scientific and practical seminar on the care, treatment, and protection of green spaces was held at Astronomy Park in Tashkent. The event was organized for school students and youth.
⏺ The seminar was hosted by the National Committee for Ecology and Climate Change in collaboration with the “Zamin” International Public Foundation.
⏺ Experts conducted theoretical and practical sessions on tree care, including mulching, sanitary and formative pruning, as well as biological methods for plant protection.
⏺ Proposals were made for planting additional shrubs and tree saplings to further enhance the greenery of the park.
⏺ Active participation included representatives from Green University, the Eco-Schools Uzbekistan project, and the Tashkent City Young Ecologists Movement.
At the conclusion of the seminar, young participants and specialists emphasized the importance of sharing experiences, learning modern approaches, and strengthening cooperation to further develop green spaces in Tashkent.
#YashilBoglar#GreenUzbekistan#EcoEducation#YouthForNature ___________________________
🌿“Yashil bog‘lar” loyihasi doirasida ilmiy-amaliy seminar
🔴 Toshkentdagi Astronomiya bog‘ida yashil hududlarni parvarishlash, davolash va himoya qilishga bag‘ishlangan ilmiy-amaliy seminar bo‘lib o‘tdi. Tadbir asosan maktab o‘quvchilari va yoshlar uchun tashkil etildi.
⏺ Tadbir Ekologiya va iqlim o‘zgarishi Milliy Qo‘mitasi va “Zamin” jamoat fondi tashabbusi bilan o‘tkazildi.
⏺ Mutaxassislar daraxtlarni mulchalash, sanitariya va shakllantiruvchi kesish, shuningdek, biologik himoya usullari bo‘yicha nazariy va amaliy mashg‘ulotlar o‘tkazdilar.
⏺ Hududni yanada ko‘kalamzorlashtirish uchun buta va ko‘chatlarni ekish bo‘yicha takliflar bildirildi.
⏺ Seminarda Green University, Eco-schools Uzbekistan loyihasi, Toshkent shahar Yosh ekologlar harakati va boshqa tashkilotlar faol ishtirok etdilar.
Tadbir yakunida yoshlar va mutaxassislar tajriba almashish, zamonaviy yondashuvlarni o‘rganish va Toshkentdagi yashil hududlarni rivojlantirish bo‘yicha hamkorlikni mustahkamlash zarurligini ta’kidlashdi.
#YashilBoglar#GreenUzbekistan#EcoEducation#YouthForNature
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube
🌱🐾 Colombia passes historic “Law of Empathy”!
Schools across the country will now teach children compassion for animals and respect for nature. The law requires all educational institutions — from kindergartens to high schools — to integrate ethical treatment of animals and biodiversity protection into school projects.
Key points:
High school students can complete community service in animal shelters and wildlife rehabilitation centers.
Programs recognize animals as sentient beings — capable of feeling pain and emotions.
A national network of teachers will share experiences and best practices in fostering respect for life.
Senator Andrea Padilla, the law’s initiator, said:
"Education saves lives and changes the world. We want new generations to grow up as fair and compassionate citizens toward all forms of life."
Colombia is now one of the first Latin American countries to make humane education mandatory — a potential model for other countries worldwide! 🌎💚
#Colombia#LawOfEmpathy#AnimalProtection#EcoEducation#Bioethics☘️Read the latest environmental news on the @ekologuz page. Follow us and send your suggestions and wishes via @eklguz_bot
Instagram | Facebook | Twitter | Sayt | Youtube