Наверняка вы замечали, что в 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
Heyyy amici! 🌟 Un breve pit stop dalle corse social per prendere fiato e prepararmi per un Super 2024.🚀 Ma tranquilli, non vi lascio senza il vostro #wallpaper quotidiano! 😎 Fatemi sapere se vi e piaciuto con la solita reaction. #NewBeginnings"
Команда VEON AdTech поздравляет всех с весенним праздником Навруз!🎉
Навруз — это не просто праздник весны, но и символ обновления, вдохновения и новых возможностей. Мы знаем, что каждый новый день — это шанс создать что-то уникальное, будь то инновационная рекламная кампания или технологическое решение, которое меняет правила игры.
В VEON AdTech мы каждый день создаем цифровые решения, которые меняют реальность, объединяя людей и технологии. Пусть эта весна принесет вам смелые решения, прорывные идеи и амбициозные проекты!
Время новых начинаний — сейчас. С праздником!🌸
#VEONAdTech#IT#NewBeginnings#Navruz2025
🇺🇿 Post 46 — Yangi Boshlanishlar 🌍✈️
Bir oy ham juda tez o‘tib ketdi. Endi yana ishga qaytyapman. Vatanimni tark etish og‘riqli, albatta, lekin kelajak uchun yaxshi imkoniyatlarga intilish — bu ham hayotning bir qismi. Har qanday qiyinchilik orqasida yangi imkoniyatlar yashirin.
Yana BAAga qaytaman! Bu safar yanada ko‘proq tajriba, o‘sish va yutuqlar bilan qaytaman 🤲
Kelajak uchun kurash davom etadi! 🙌✨
🇬🇧 Post 46 — One Month and New Beginnings 🌍✈️
One month flew by so fast. Now, I’m heading back to work. Leaving my homeland is painful, for sure, but striving for better opportunities is a part of life. Behind every hardship lies a new chance.
I’m returning to the UAE and the Ladurée family! This time with even more experience, growth, and achievements. Moving forward with patience and confidence.
The fight for a better future continues! 🙌✨
24/08/2025
#NewBeginnings#NextChapter#LaduréeJourney
#EverythingILived
📚🎉Welcome, Class of 2024! 🎉📚
✅Day 1 of Orientation Week at Green University was a huge success! Here's what our amazing new students experienced:
⏺Warm welcome from our Rector, Dr. Jasur Salikhov
⏺Exciting presentations from our Research Institutes
⏺Introduction to our Retraining Center
⏺Eye-opening session on our work in the Aral Sea basin
⏺Comprehensive campus tour, including state-of-the-art facilities and scientific labs
⚡️We're thrilled to have you all on campus and can't wait for Day 2 – it's going to be even more engaging! 💚🌱
#GreenUniversity#OrientationWeek#ClassOf2024#NewBeginnings#HigherEducation#CampusLife#AralSea#Sustainability
🚀 UXLINK、東京オフィスオープン!🇯🇵
つながりが新たな価値を生む時代。
UXLINKは、より強固なコミュニティの構築とグローバルな成長を加速させるため、東京オフィスを正式にオープンしました! 🎉
しかも… 東京タワーを一望できる最高のロケーション!🗼✨
ここからWeb3の未来を創る皆さんとともに、新たなつながりを広げていきます。
これからの日本の展開をお楽しみに!
#UXLINK#東京オフィス#TokyoTower#Web3#つながりの力#新たなステージ
🚀 UXLINK Tokyo Office is Now Open! 🇯🇵
💪A new chapter begins.
To strengthen our global network and accelerate Web3 innovation, UXLINK has just officially opened its Tokyo office! 🎉
And the best part....? A breathtaking view of Tokyo Tower right from our workspace. The office is just at the central heart of Tokyo🗼✨
From Tokyo to the world, we’re building the future of connections.
Stay tuned for what’s next. 🔥
#UXLINK#TokyoOffice#Web3#TokyoTower#NewBeginnings#FutureOfConnections