Наверняка вы замечали, что в 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
В #Furla распродажа
-30% от указанной цены 🛍️
Furla Primavera
Furla Diamanté
Furla Metropolis
Furla Primula
Больше сумок бренда смотрите по хэштегу — #Furla
В акции участвуют не только эти позиции
Оформить заказ: @zakaz_k2u
Все утро любуюсь 🤍
Миниатюрная и очень вместительная цумочка #Furla с ремешком в комплекте
В наличии также в карамельном, бирюзовом, красном, салатовом, оливковом, серо-голубом, лавандовом и черном ❤️
Приехала карамелька🤎Tote #Furla для моей покупательницы 🥰
Завтра уже поедет в Москву (одна только коробка чего стоит)
Это коллекция 23 года со скидкой -40% из аутлета) в наличии Afrodite в разных цветах
Сумка идеальных размеров - не выглядит как чемодан и при этом в нее влезет вся моя жизнь
От 22500₽
На ночь глядя #сравнитецену
Я чуть сама не купила эту сумку в Москве пол года назад.
Понравился принт, форма и очень крутое качество, но модель не новая, поэтому в аутлете идет по скидке)
Кстати хз почему ЦУМ обозвали ее Charlie, модель называется Charlotte
Ну почти 😂
Короче, надо брать!
#Furla
Такое ни один байер со своими старомодными сумками в пузырчатый ромбик не покажет
Ещё раз посмотрите на сами вещи и финальную цену на этикетках.
Как говорит мой суженный «грех не купить»
Я серчила рынок и могу сказать точно - 80% байерских услуг в телеге выставляют самую верхнюю цену (просто потому что даже это дешевле чем в РФ ахаха)
А если вещь выглядит как из коллекции 10летней давности - девчонки, максимал 2 кэса ₽, отвечаю
Вас обманывают, если продают такую вещь дороже)
Может я сейчас весь байерский телеграмм рынок рушу, но просто знайте:
#Moschino, #MichaelKors, #Furla, #Pinko, #CalvinKlein, #Diesel, #Levi’s, #Coccinelle, #LIUJO, #Falconeri, #Blumarine, #ArmaniExchange, #Fabi, #VersaceJeans, #Sandro, #Twinset - это все на скидках продается по ооочень выгодным ценам.
Но надо знать где искать.
That’s why here I am 🙃
1. Я выставляю только то, что купила бы сама или посоветовала подругам
2. Пишу самую нижнюю стоимость с этикетки)
3. Оцените модель от 1 до 10))
#сравнитецену