Наверняка вы замечали, что в 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
🪐 In the galaxy dubbed "The Whale" (NGC 4631), astronomers have detected a barrage of fast radio bursts—ultra-brief, intense flashes of radio energy—coming not from the center, but from the galaxy’s outer regions. These mysterious signals last just milliseconds but shine as brightly as billions of suns, making NGC 4631's outskirts a surprising hotspot for one of space’s most powerful, fleeting phenomena. ✨
#fastbursts⚡#galaxies⚡#radioastronomy⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🪐 In 2024, astronomers used the CHIME radio telescope to spot FRB 20240117A, a fast radio burst coming from a galaxy nearly 4 billion light-years away in the constellation Lynx. This single millisecond flash released more energy than the Sun does in several days, showing just how powerful these mysterious cosmic radio signals can be—even when they travel billions of light-years through silent, near-empty space. ✨
#frb⚡#galaxies⚡#radioastronomy⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Between 1960 and 1998, the Arecibo radio telescope in Puerto Rico transmitted several powerful messages toward star clusters like M13 in the hope that intelligent aliens, if they exist, might detect and respond. These "active SETI" attempts used coded radio signals aimed at real star systems—making the search for extraterrestrial life not just a matter of listening, but also of sending greetings out into the galaxy with real, named astronomical targets. ✨
#aliens⚡#SETI⚡#radioastronomy⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 In the constellation Dorado, the massive galaxy NGC 1316 bears the scars of cosmic collisions—its shell-like structures and tangled lanes of dust betray a history of devouring smaller galaxies. Radio observations have revealed that this turbulent giant also hosts powerful jets and lobes fueled by a hidden supermassive black hole at its core, making NGC 1316 a remarkable blend of chaos and creation in the southern sky. ✨
#galaxy⚡#mergers⚡#radioastronomy⚡#blackhole⚡#nasa⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🪐 In 2024, observations with the CHIME radio telescope revealed that some fast radio bursts (FRBs) can travel through the sparse gas between galaxies—known as the intergalactic medium—without slowing down or scattering as much as expected. This suggests that the space between galaxies, like that between the Milky Way and the Triangulum Galaxy (M33), is even more empty and calm than scientists previously thought, allowing these intense millisecond bursts of radio energy to arrive at Earth almost untouched by cosmic matter. ✨
#FRB⚡#radioastronomy⚡#intergalactic⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 Among the strangest discoveries in astronomy are fast radio bursts (FRBs) emerging from the spiral galaxy NGC 253, also known as the Sculptor Galaxy. In 2022, scientists detected a repeating FRB source here—brief flashes of radio energy lasting just milliseconds and releasing more power than the Sun generates in years—making NGC 253 a new hot spot in the ongoing quest to understand these mysterious cosmic signals. ✨
#fastbursts⚡#sculptorgalaxy⚡#radioastronomy⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels