Наверняка вы замечали, что в 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
✨ Unlock the Power of Keywords in Nicegram!
Tired of digging through endless chats to find that one important message? We hear you! Your search struggles are officially over!
How it works:
1️⃣ Search for a word in Keyword tab → Save it as a Keyword Chat.
2️⃣ Open it anytime — all messages with that keyword appear instantly!
3️⃣ Add multiple keywords to a single chat for even smarter organization.
4️⃣ All your Keyword chats live neatly in a 📁 "Keywords" folder!
Perfect for:
✔️ Work (#Deadline)
✔️ Recipes (#DinnerIdeas)
✔️ Important links (#Download)
What’s the first keyword you’ll save? Tell us below!
👉Share in X: click here
Download Nicegram:
🛒AppStore | 🛒GooglePlay
Join Chat:
🇬🇧EN Chat | 🇷🇺RU Chat
Follow us:
✖️X | 📹YouTube
Website |Features | Navigation
# Очередной гастрономический эксперимент от #СибирскаяТрапеза🍽️🔥
## Говяжьи рёбра в собственном соку с овощами гриль 🌟
Хотите попробовать нечто особенное?
Представляю вашему вниманию новый кулинарный шедевр от нашей команды: говяжьи рёбра, приготовленные особым способом!
### Как мы готовили блюдо:
1. ☀️Маринад: Рёбрышки замаринованы с добавлением ароматных овощей гриль и натурального вкуса вакуумирования.
2. ✨Су-вид: После маринования, рёбра отправляются в путешествие на 14 часов в режим "томления", сохраняя сочность и нежность мяса.
3. 🧈Финальный штрих: Сок и овощи блендируются с чесноком, придавая блюду насыщенный вкус и тонкий аромат.
4. 🔥Обжарка: Под конец приготовления рёбра слегка обжариваются на гриле, создавая аппетитную хрустящую корочку.
5. 🌿Подача: Блюдо украшается свежей зеленью и подается с собственным уникальным соусом. А гарнир каждый выбирает себе по вкусу 😉
---
P.S. Если хотите сохранить удовольствие надолго, наши повара готовы предложить вам специальное решение: реторт-пакетирование. Мясо вместе с соусом аккуратно упаковывается в прозрачную упаковку, проходит стерилизацию и готово радовать вас долгое время!
Желаем приятного аппетита и новых ярких вкусов! 💛✨
---
⭐ _Подписывайтесь на нашу страницу и следите за новыми рецептами._
_Экспериментируйте дома и наслаждайтесь каждым кусочком!_
#гастроэксперимент#мясо#грилль#говядина#рецепт#поварскиехитрости#гастротренд#еда#обожаюготовить#povarskiehitrosti#edablog#instafood#tasty#vscofood#goodfood#cooking#lovecooking#myrecipe#recept#mystory#dailyfood#meat#steak#ribs#grillveggies#sousvide#chefsecrets#dinnerideas#cuisineinspiration