Наверняка вы замечали, что в 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
Vaccines are one of the best tools we have to improve health and well-being around the world.
#TakeResponsibility, encourage your loved ones and those around you to #GetVaccinated.
Visit https://www.vacsitefinder.nphcda.gov.ng/ to locate the nearest vaccination site to you.
📢
Nigerians are advised to continue to #TakeResponsibility.
Visit the nearest government health facility to #GetVaccinated if you have not been previously vaccinated.
🔗
Public Health Advisory:
https://www.ncdc.gov.ng/news/429/public-health-advisory-following-the-presidential-approval-for-the-relaxation-of-covid-19-safety-measures-%26-travel-advisory
@PSCCOVID19 Update:
https://covid19.ncdc.gov.ng/media/files/Press_Release_-_Relaxation_of_COVID-19_Rules_Ako_221212_210142.pdf
#Cholera can be prevented.
Immunisation with the oral cholera vaccine plays an important role in outbreak prevention and control and the long-term elimination of #cholera.
#GetVaccinated
🚨DIPHTHERIA SITUATION REPORT🚨
As of March 9, 2025 (Epi-Week 10):
📍 23 suspected cases reported in Lagos (20) and Katsina (3)
📍 0 confirmed cases this week
📍 42,642 suspected cases recorded since 2022 across 37 states
📍 25,812 confirmed cases & 1,319 deaths (CFR: 5.1%)
🔹 Most affected states: Kano, Yobe, Katsina, Bauchi, Borno
🔹 62.9% of cases are in children aged 1–14 years
🔹 Only 19.3% of confirmed cases were fully vaccinated
💉 Vaccination is key! Protect yourself and your loved ones.
📞 Report suspected cases via NCDC’s toll-free line: 6232
🔗 Read more: https://ncdc.gov.ng/themes/common/files/sitreps/0a1f4b602a9f655c68b316934e533928.pdf
#Diphtheria#GetVaccinated#NCDCNigeria
People most at risk of #diphtheria infection are urged to #GetVaccinated
These include:
➡️Children & adults who have not received any dose of the anti-diphtheria vaccine
➡️Healthcare workers & others who have been exposed to suspected/confirmed cases
➡️People who live in areas with poor sanitation
#TakeResponsibility to stay safe
Severe disease, admissions and deaths disproportionately affect the unvaccinated and those with risk factors i.e., older people, people with underlying health conditions and the immunocompromised.
#GetVaccinated against #COVID19 to stay safe and healthy.
#TakeResponsibility
#COVID19 is still a health threat
If you are experiencing symptoms associated with #COVID19, visit the nearest testing centre close to you for diagnosis & treatment
#GetVaccinated, the vaccine protects you from severe illness, hospitalisation & death
#TakeResponsibility
Severe disease, admissions and deaths disproportionately affect the unvaccinated & those with risk factors i.e., older people, people with underlying health conditions and the immunocompromised.
#GetVaccinated against #COVID19 to stay safe and healthy.
#TakeResponsibility
Getting vaccinated protects you from severe illness, hospitalisation & death from the #COVID19 virus.
#TakeResponsibility, encourage your loved ones and those around you to #GetVaccinated.
Visit https://www.vacsitefinder.nphcda.gov.ng/ to locate the nearest vaccination site to you.
Good health is the most important gift this Christmas season.
#GetVaccinated against #COVID19 to protect yourself and your loved ones.
#TakeResponsibility
Elderly persons & those with existing medical conditions are encouraged to take extra precautions to stay safe & healthy.
💉#GetVaccinated to limit your risk of getting infected with #COVID19.
Vaccination sites: https://nphcda.vaccination.gov.ng/vaccination-sites
#TakeResponsibility
Immunisation with the oral cholera vaccine plays an important role in outbreak prevention and control and the long-term elimination of cholera.
#GetVaccinated
#WorldImmunisationWeek