Наверняка вы замечали, что в 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
I present a soft, relaxed, cozy, warm soul (and body 😉) plaid shirt.
Autumn is coming 🍂 and we will all need it paired with denim, leather jackets and trench coats soon. And for those who can't wait - try to style with summer cotton skirts, one love 💕
#inspirationINVOGA
🌺 Flowers always, 🌼 flowers everywhere!
🌺Flower Like:
- choker
- belt (I liked it very much 👌🏼 - as an alternative to a choker)
- brooch
🌸Flower on:
- shoes
- swimsuit
- shirt
#inspirationINVOGA
TOP 5 ideal neighbors for metallic trousers:
1. White T-shirt
2. Black/white tank top
3. Basic jersey
4. Masculine shirt or jacket
5. Classic longsleeve
Shine with pleasure and let the whole world be reflected in your pants - no matter how it sounds😂
#inspirationINVOGA
There are five must-have accessories for the upcoming (and for someone have already come) cold weather:
1. Voluminous long scarf
2. Bib
3. Short or long gloves
4. Puffy/quilted bag
5. Balaclava
#inspirationINVOGA
Let's look at the beauty celebration from Prada about the new fragrance PARADOXE
Here we have everything in style:
conciseness in color and silhouettes;
oversized jackets
socks
a drop (or not a drop) of glitter and a few feathers
leather
crossbody with very short straps
And triangles, triangles, triangles😊
#inspirationINVOGA
Hoodie + Coat - Yes or No?
As for me, there is nothing better and more convenient than such a couple for daily routine worries that have to be done more often than bright events happen😉🤷🏼♀️
While it is still not too cold, the coat can be left open. The hoodie can be worn without an underlayer. However, it is also not forbidden to pry off the turtleneck to save the throat and tighten the belt on the coat.
#inspirationINVOGA
A bit of street style from Paris Fashion Week Spring 2023:
- total denim, asymmetric denim, double waist,
- loose knit jersey,
- bomber jackets, leather coats, and trench coats,
- fit and transparency,
- balaclavas,
- over-the-knee boots and high boots
#inspirationINVOGA
☕️It's cloudy and rainy outside the window☔️. The mood is to wrap yourself in a knitted dress and enjoy your favorite cappuccio - what could be better for a Wednesday morning?
Favorite🏆 styles:
1. Knitted dress with sneakers
2. Knitted dress with trumpet/jockey boots that overlap with the dress.
3. Knitted dress overskirt
4. Knitted dress with rough, worn leather
#inspirationINVOGA
I went to Etro Spring 2023 street style for paints, prints, and textures, sharing the mood I caught there and photos made by my own hands 🤲🏼
I’ll start with the atmosphere, the show, and as a result, the street style took place in the industrial zone of Milan and was accompanied by a roar, howl, and signals of disgruntled trucks 🚚🚛 , traffic that was not blocked, but photographers and street stylers scurrying everywhere and everywhere, significantly complicated it 🔴
And then everything is as expected - notes of ethnicity in the form of jersey with fringes, small and complex prints, bright saturated colors, patchwork, some leather, but more suede.
I have loved Etro for many years and have chosen the perfect accents for my wardrobe there! ❤️🤎
#inspirationINVOGA
In the meantime, Milan is taking over the baton of Fashion week, in which I am also going to participate and share with you. We review and study London street style.
Lots of ruffles and frills, puffed sleeves and huge collars, brocade and tulle combined with a bit of English stiffness, plaid, lots of Mary Jane variations, golfs, leather, and punk casualness 🎸🤘🏼
#inspirationINVOGA
Who has butterflies in their stomach? 🦋😉 Release! This summer, and next fall, you can definitely👌🏼
We are not limited to flowers, we add butterflies in all dimensions - tops, jewelry, bags, belts, shoes, and when autumn comes, it will come to jackets.
Catch it while the season and treat with care😉
#inspirationINVOGA