Наверняка вы замечали, что в 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
Myth: The tongue is divided up into specific areas that are solely responsible for sensing certain tastes (e.g., sweet at the tip, bitter at the back)
Fact: The tongue's receptor cells that identify the molecules underlying the basic tastes (sweet, sour, salt, bitter and umami) are distributed on taste buds all over the tongue although some areas may be slightly more sensitive to certain flavors..
@googlefactss#humanbody#nowyouknow#mythbusted
[read more...]
People think hair and nails grow after death, but it’s an optical illusion: as skin dehydrates and shrinks, nails and hair look longer — No actual postmortem growth happens.
[Learn more]
@googlefactss
#Forensics#MythBusted
Myth: Glass flows over time, making old windows thicker at the bottom.
Fact: Glass is an amorphous solid, meaning its atoms are arranged randomly, not in a pattern like crystals. It stays solid at all normal temperatures and only softens above 600°C (1112°F). Old windows are thicker at the bottom because of how they were made, not because glass moves. 🔥🌡️
[Read more]
@googlefactss
#GlassFacts#Science#MythBusted#Heat
Viking helmets with horns are -mostly- a myth. Only one authentic Viking helmet exists, without horns. Horned helmets appear in art linked to berserkers—fierce warriors who likely wore them for rituals, not battle. Horns would be impractical in combat, and no historical records mention Vikings wearing them. Real Viking helmets were simple and functional. ⚔️🛡️
[More🪖]
@googlefactss
#Vikings#History#MythBusted#Berserkers#Archaeology
❄️ Hot water does NOT freeze faster than cold water.
While a rare phenomenon called the Mpemba effect suggests it can happen under specific conditions, cold water almost always freezes first.
[Source]
This post is a correction for another one we posted in the past [here]
@googlefactss#Science#Physics#WaterFreezing#MpembaEffect#MythBusted
The idea that skinny people have fast metabolisms is a myth. Metabolism depends largely on muscle mass—more muscle means higher energy use. Skinny people usually have less muscle, so their metabolism is often slower. Weight and appearance don’t reliably show metabolism speed.
[Read more]
@googlefactss
#Metabolism#MythBusted#Health#Fitness#BodyScience
Myth: opposums sleep while hanging by their tails.
Fact: Opossums do not hang upside down by their tails 🐾. Their tails are strong for gripping branches and carrying nesting materials but can’t hold their full weight for long. Young opossums might dangle briefly but don’t sleep that way. They “play possum” by pretending to be dead when scared, which helps protect them from predators.
🌙🐾🌳
[Read more]
@googlefactss#PossumFacts#AnimalBehavior#NatureFacts#MythBusted#DisneyWasWrong