Наверняка вы замечали, что в 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
🇺🇿“Bir Vatan, bir el, bir bayroq!”
Davlatimiz bayrog‘i xalqimizning boy tarixi, jasorati va ezgu intilishlarini mujassam etgan muqaddas ramzdir. U har bir yurtdoshimizga Vatanimizga bo‘lgan mehr, g‘urur va sadoqat tuyg‘usini his ettiradi.
Yoshlar ishlari agentligi jamoasi nomidan barcha yurtdoshlarimizni 18-noyabr — O‘zbekiston Respublikasi Davlat bayrog‘i qabul qilingan kun bilan samimiy muborakbod etamiz!
Bayrog‘imiz yurtimiz osmonida baland hilpirab, xalqimizga tinchlik va farovonlik olib kelsin!
#Bayroq
🕊Telegram📱Instagram📺YouTube🔹Linkedin🌍Veb sayt
O‘zbekiston Respublikasi Davlat bayrog‘i qabul qilingan kun munosabati bilan litseyda bayram tadbirlari o‘tkazildi.
🏛 Toshkent davlat transport universiteti akademik litseyida Bayroq bayrami keng nishonlandi. Ushbu sana munosabati bilan bir qator ma’naviy-ma’rifiy tadbirlar tashkil etildi.
#Bayroq#Yoshlar#Akademik_litsey
📲Akademik litsey sahifalari:
Telegram | Instagram | Facebook
Bugun Toshkent davlat transport universiteti akademik litseyida O‘zbekiston Respublikasi Davlat bayrog‘i qabul qilingan kun munosabati bilan ma’naviy-ma’rifiy tadbir – davra suhbati o‘tkazildi.
Davra suhbatida bayrog‘imizning tarixiy ahamiyati, unda aks etgan rang va timsollarning mazmun-mohiyati, mustaqillik ramzi sifatidagi o‘rni haqida keng ma’lumotlar berildi. O‘quvchilar davlat ramzlariga hurmat, yurtga sadoqat, vatanparvarlik tushunchalari borasida fikr almashishdi.
#Bayroq#Yoshlar#Akademik_litsey
📲Akademik litsey sahifalari:
Telegram | Instagram | Facebook
Davlat bayrog‘i – mustaqilligimiz va milliy g‘ururimiz timsoli!
🇺🇿 Bugun, 18-noyabr, O‘zbekiston Respublikasi davlat bayrog‘i qabul qilingan kun! Davlatimiz ramzlaridan biri bo‘lgan bayrog‘imizning 33 yilligi bilan barchangizni “Yangi O‘zbekiston” universiteti jamoasi nomidan samimiy muborakbod etamiz.
Bayrog‘imiz ko‘klarda hilpirab, yurtimizning har bir burchagida yoshlarimizning yuksak maqsadlari va yutuqlarini ifoda etishda davom etsin!
🌟 Yurtimiz yoshlari bilim va g‘ayratlari bilan bayrog‘imizni xalqaro maydonlarda baland ko‘tarishda bardavom bo‘lishsin!
🇺🇿 Bayrog‘imiz har doim yurtimiz sha’nini dunyoga yoyuvchi nur bo‘lsin!
🔁English
➖➖➖➖➖➖➖➖➖➖➖➖➖
#bayroq#18noyabr
⬇️Biz ijtimoiy tarmoqlarda:
Veb-sayt | Telegram | Instagram | Facebook
O‘zbekiston Respublikasi davlat bayrog‘i qabul qilingan kun munosabati bilan bayram tadbiri o'tkazildi
✅ Tadbir davomida universitet talabalar kengashi prezidentining inauguratsiya marosimi ham bo'lib o'tdi. Unda talabalar kengashi prezidenti etib saylangan Nurislombek Mahkamjonxojizoda nutq so'zlab, unga bildirilgan ishonchni adolat bilan oqlashga va'da berdi.
📌 Shuningdek, universitetning eng faol va iqtidorli talabalaridan iborat klublar yetakchilari esdalik sovg'alari bilan taqdirlandi.
🔁English
➖➖➖➖➖➖➖➖➖➖➖➖➖
#bayroq#inauguratsiya#taqdirlash
⬇️ Biz ijtimoiy tarmoqlarda:
Veb-sayt | Telegram | Instagram | Facebook