Наверняка вы замечали, что в 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
🌍 Remote sensing satellites can now detect wildfire smoke plumes traveling thousands of kilometers. These space-based observations help track air quality and protect health far beyond fire zones. ✨
#remote⚡#sensing⚡#satellites⚡#airquality⚡#geography⚡#nature⚡#earth
👉subscribe Amazing Geography
👉more Channels
⏸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
Co-creation Workshop on Climate and Air Quality
💬On December 4, Green University, together with Clean Air Asia and with the support from MOEJ, hosted a workshop in Tashkent focused on developing projects to improve air quality and reduce emissions. The workshop highlighted the JCM, project idea development, and knowledge exchange with international experts.
The workshop:
⚪️Helped to explore the co-benefits of clean air and climate mitigation
🔵Introduced the Joint Crediting Mechanism (JCM) as a financing tool for low-carbon projects
🔴Developed Project Idea Notes (PINs) with city officials and experts
🟢Facilitated knowledge exchange with specialists from Japan and Asia
#GreenUniversity#AirQuality#ClimateAction#SustainableCities#CleanAirAsia#JCM#Uzbekistan#EnvironmentalLeadership
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube
Air Quality Assessment in Termez 2025: Toward Cleaner Air and Clearer Skies
🔴On December 16, 2025, Green University, together with UNEP and the Finnish Meteorological Institute, presented the results of the air quality assessment in Termez. The event brought together government representatives, experts, development partners, media, and civil society.
🔴The assessment, conducted at the request of the National Committee on Ecology and Climate Change of Uzbekistan, was based on data from the first automatic reference air monitoring station installed in Termez in 2024 with the support of the Zamin Foundation. The study identified key pollution sources and provided science-based recommendations to improve air quality.
🔴The discussion also covered new air quality management strategies, including the work of Uzhydromet and youth-focused environmental initiatives by the Zamin Foundation.
#AirQuality#CleanAir#Termez#Uzbekistan#GreenUniversity#UNEP#FMI#ClimateAction#EnvironmentalProtection
✉️[email protected]
☎️ +998 55 512 00 77
📍Location
🌐Website | 📱Telegram | 📱Instagram | 📱LinkedIn | 🟥YouTube