Наверняка вы замечали, что в 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
Поздравляем Вас с Новым годом 🎅🏻
Совсем скоро наступи Новый год – время исполнения желаний💫
Пусть эта сказочная ночь будет полна любви, надежды и веры в то, что впереди каждого из нас ожидает множество прекрасных свершений ✨
А Новый год будет полон удивительных моментов и ярких впечатлений. Мы хотим, каждый день создавать множество счастливых воспоминаний для Вас 🎊
С праздником!🎄
Команда, Notalone 🎀
#notalonecosmetics
Создай свою историю любви с NOTALONE 🫦
доступен на OZON (артикулы)
💙 синий Bergamot Amber Wood➖ 1680431583
💛желтый Vanilla Lovers ➖1680431603
🩷розовый Black Pepper Neroli ➖1680431587
#notalonecosmetics
NOTALONE x ЗОЛОТОЕ ЯБЛОКО
Теперь любимый бренд стал еще доступнее.
💚 Все ароматы парфюмированного геля и мыла теперь доступны к заказу онлайн в «Золотом Яблоке»
Переходи по ссылкам ниже 🛍️
🧴Парфюмированные гели:
💛Vanilla Lovers
💙Bergamot Amber Wood
🩷Black Pepper Neroli
🧼 Парфюмированное мыло:
💛Vanilla Lovers
💙Bergamot Amber Wood
🩷Black Pepper Neroli
Приятных покупок 🫴
#notalone#notalonecosmetics
Притягательная сила NOTALONE
Ты наполняешься любовью и излучаешь красоту ❤️
Пробуждается внутренняя энергия чувственности ✨
Ты становишься притягательной для окружающих 💥
Выбери свой аромат 🛁
#notalone#notalonecosmetics
Парфюмированный гель для душа NOTALONE сочетает в себе лучшие свойства ухода за кожей и красоты, благодаря увлажняющему комплексу с маслами, обеспечивающему мягкое очищение и интенсивный уход за кожей 🩵🦩🍦
#notalone#notalonecosmetics
Vanilla Lovers 💛
Робкая влюбленность - это ванильное начало отношений, когда у тебя мурашки по коже от его прикосновения.
Black Pepper Neroli 🩷
Страсть - ты в моей власти, без ума от тебя.
Bergamot Amber Wood 💙
Глубокая связь - хочу узнать тебя поближе, ты в моем плену.
#notalone#notalonecosmetics
NOTALONE
Модный бренд натуральной уходовой косметики, который призывает нас осознать силу любви в каждом моменте, будь то любовь к себе или партнеру💞
NOTALONE создан для современных девушек и парней, которые идут в ногу со временем, и при этом умеют ценить настоящую глубину чувств
Каждый наш продукт — это уникальное сочетание унисекс ароматов, которые раскрываются по-разному в зависимости от вашей индивидуальности
#notalone#notalonecosmetics
Создание NOTALONE ✨
Мы кропотливо работали над каждым продуктом и ароматом, чтобы достичь идеального сочетания 💞
Все наши усилия направлены на создание косметики, которой можно доверять и наслаждаться!
Долгая разработка, сотни образцов и
тщательный отбор натуральных ингредиентов
🌱
#notalone#notalonecosmetics