Наверняка вы замечали, что в 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
Подводка для глаз: тогда и сейчас 🎀
Ещё тысячи лет назад в жарком Египте люди начали подчёркивать глаза тёмной линией. Минералы, сажа и масла превращались в кохль — символ защиты, статуса и силы. Глаза обводили и мужчины, и женщины, веря, что взгляд может многое рассказать 👁️✨
С течением времени подводка превратилась в способ выразить красоту. В античности она подчёркивала форму глаз и черты лица, а в XX веке стала настоящей иконой: немое кино, дымчатые тени, выразительные стрелки — одна линия могла полностью менять образ 🎬
В 60-е годы подводка стала смелой и графичной, настоящим заявлением характера 🩶
Сегодня это целый мир возможностей.Подводка остаётся тем инструментом, с которым взгляд становится выразительным — и каждый день можно создавать свой образ!
А вы помните свою первую подводку?
Попробуй подводки ☁️ и будь неповторимой!
Подводка кремовая Miraculous #miraculouseyes
Подводка маркер с кисточкой S-CLASS #overpowered
#sodalovespopculture
❄️Выпал первый снег, а это значит, что настало время зимнего мэйкапа!
❄️Зимний образ с помощью:
• палетки Beware Of Witches #magicalpower
• подводки кремовой Miraculous #miraculouseyes
• пигмент-подводки жидкой Inner Dragon #magicalpower
• тинта Sunfire 003 (Winx)
• блеска для губ CHU ME A FAVOUR #bittersweetkiss, 202 Kdrama
Уже готовы к зимнему сезону?
☕️
🎄
Хочешь повторить этот мистический фиолетовый макияж, как на фото? Сделали подборку продуктов Soda, которые тебе помогут!
🤩Палетка теней Beware Of Witches #magicalpower
🤩 Жидкие тени Vertigo #magicalpower
🤩Карандаш для глаз Zenith #magicalpower, 006 Techno
🤩Кремовая подводка Miraculous #miraculouseyes, оттенки 301 и 305
🤩 Накладные ресницы #dollyeyes
С этими продуктами ты соберёшь тот самый фиолетовый look — дерзкий, мистический, сияющий. Готова примерить образ на себя? 💜🖤
🌟🌟🌟🌟🌟🌟🌟🌟
🌟🌟🌟🌟🌟🌟
Смотрим новый сезон и вспоминаем iconic макияж Оди из 2-го сезона!☀️
Образ максимально простой, но очень эффектный: смелые тени, тёмная подводка вокруг глаз и натуральная кожа без лишнего глянца. Такой макияж выглядит гранжево и небрежно — и в этом весь вайб👣
⏺ Палетка теней Beware Of Witches #magicalpower
⏺Подводка кремовая Miraculous #miraculouseyes
⏺Карандаш для губ SWEET TREAT #cherryontop, № 102 Bingsu
⏺Тональная основа LIGHTWEIGHT FOUNDATION #covergirl, № 002 Melon Smoothie
Кто уже посмотрел первые серии нового сезона?🌱
#sodainspiration
Одержимы вайбом новых ангелов Victoria’s Secret 💗 Эти выходы, сияние, уверенность — просто мурашки! ❤️ Мы собрали продукты SODA, чтобы передать тот самый подиумный блеск: сияющие глаза, глянцевые губы и дерзость в каждом взгляде ❤️
Вот что тебе нужно для angel energy:
🎀 Подводка с кисточкой S-CLASS #overpowered, 209 system
🎀 Жидкие тени Domino #magicalpower, Winx, 004 Dragon Fury
🎀 Карандаш для глаз Zenith #magicalpower, Winx, 006 Techno
🎀Кремовая подводка Miraculous #miraculouseyes, 304
🎀 Бальзам для губ Legendary Lip Balm #sweetkiss, 001
🎀 Масло для губ ROLLIN' LIP OIL #lipbizkit, 001 Strawberry cake
Немного блеска, уверенный взгляд и улыбка — и ты уже на своём подиуме 💋
#sodainspiration