Наверняка вы замечали, что в 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
👷♀Sizga muvaffaqiyatli boshlanishlar, to'g'ri trayektoriyalar, vakuumda qolib ketmaslikni, illyuminatordan Yer ko’rinishini, va, albatta, uyingiz yonida doimo koʻkalamzor bo’lishini tilab qolamiz🚀
- - - - -
👷Желаем успешных стартов, правильных траекторий, не застревать в вакууме, Земли в иллюминаторе, и конечно же, травы у дома🚀
#knaufuzbekistan#12aprel
🚀✨Kosmonavtlar kuni muborak!✨🚀
Bugun — insoniyat tarixida muhim burilish yasagan sana! 🌍🚀
1961-yil aynan shu kuni Yuriy Gagarin ilk bor koinotga parvoz qilib, insoniyat uchun yangi ufqlarni ochgan edi.
🌌 Koinot — bu faqat yulduzlar emas, balki orzular, jasorat va cheksiz imkoniyatlar ramzi.
Har bir bola qalbida kichik “kosmonavt” yashaydi — u kashf etishni, bilishni va balandlarga parvoz qilishni istaydi.
👩🚀👨🚀 Bizning o‘quvchilarimiz ham kelajakda yurtimiz faxriga aylanishiga ishonamiz!
🌠 Orzularingiz baland bo‘lsin, parvozingiz esa yanada yuksak!
#KosmonavtlarKuni#12Aprel#Koinot#Orzular#Kelajak🚀
🏫Al-Xorazmiy maktabi:
Sifatli ta'lim- mukammal natija!
☎️ +998937091144
+998907861144
+998907871144
📍Manzil: Farg'ona shahar, Yormozor MFY, Sharshara ko'chasi 326-uy
Telegram | Instagram | YouTube | tiktok
#Chilonzor
#KosmonavtlarKuni
#YuriyGagarin
#12Aprel
#Koinot
#IlmFan
Chilonzorda Kosmonavtlar kuni munosabati bilan xotira tadbiri o‘tkazildi
12-aprel — Kosmonavtlar kuni munosabati bilan Chilonzor tumanida joylashgan Yuriy Gagarin monumenti oldida tantanali gul qo‘yish marosimi bo‘lib o‘tdi.
Tadbirda tuman hokimi Saidqahhor Xolxo’jayev, xorijiy davlatlar elchixonalari mutasaddilari va vakillari, tashkilot va muassasalar vakillari, keng jamoatchilik ishtirok etib, insoniyat tarixida yangi davrni boshlab bergan Yuriy Gagarin xotirasiga hurmat bajo keltirdilar.
So‘zga chiqqanlar 1961-yil 12-aprel kuni amalga oshirilgan tarixiy parvoz — Vostok-1 orqali insoniyat ilk bor koinot sari yo‘l olganini alohida ta’kidladilar.
Mazkur voqea nafaqat fan va texnologiya rivojiga, balki butun insoniyat tafakkuriga ulkan ta’sir ko‘rsatgani qayd etildi.
Shuningdek, bugungi kunda O‘zbekistonda ham kosmik sohani rivojlantirish, yosh mutaxassislarni tayyorlash hamda zamonaviy texnologiyalarni joriy etish borasida keng ko‘lamli ishlar amalga oshirilayotgani e’tirof etildi.
Tadbir yakunida ishtirokchilar tomonidan monument poyiga gulchambarlar qo‘yilib, buyuk kosmonavt xotirasi yana bir bor ehtirom bilan yod etildi.
👉👉👉Lavhamizda tadbir jarayonlari
https://t.me/chilonzor_tuman_hokimligi