Наверняка вы замечали, что в 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 2021, astronomers detected a record-breaking gamma-ray burst called GRB 211211A, which defied expectations by lasting over a minute—much longer than most "short" bursts thought to arise from merging neutron stars. Observations with space telescopes revealed this unusually long burst likely came from the merger of two neutron stars in a distant galaxy, showing that cosmic collisions can create gamma-ray explosions with a wider variety of durations and energies than previously believed. ✨
#gamma-ray-bursts ⚡#neutron-stars ⚡#cosmic-explosions ⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 In December 2004, the galaxy NGC 1637 in the constellation Eridanus was the source of a rare and powerful cosmic event known as a "short gamma-ray burst." Lasting less than two seconds, these bursts are believed to result from the merger of two neutron stars—ultra-dense remnants of massive stars—which create a flash of high-energy gamma rays strong enough to briefly outshine entire galaxies before fading away in moments. ✨
#gamma-rays ⚡#neutron-stars ⚡#cosmic-explosions ⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 In April 2023, the Hubble Space Telescope captured the fading afterglow of GRB 230307A, a gamma-ray burst originating over a billion light-years away in the constellation Leo. This colossal explosion was traced to the merger of two neutron stars—super-dense remnants of dead stars—that created not only intense gamma rays but also heavy elements like gold and platinum, revealing the dramatic cosmic origins of some of Earth’s rarest materials. ✨
#gamma-ray-bursts ⚡#neutron-stars ⚡#hst⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
👉more Channels
🪐 The star PSR J0952–0607, about 3,200 light-years away, is the fastest-spinning known pulsar—a type of neutron star that emits beams of radiation—as it completes over 707 rotations every single second. This "black widow" pulsar is slowly destroying its companion star with powerful radiation, a cosmic process that leaves behind only the densest, most compact remnant. ✨
#pulsar⚡#neutron-star ⚡#rotation⚡#nasa⚡#galaxy⚡#stars⚡#astronomy⚡#universe⚡#cosmos⚡#space
👉subscribe Universe Mysteries
🚀У SpaceX появился реальный конкурент!
Rocket Lab почти достроила свою "Starbase" для ракеты Neutron🌍🛰
Стартовый комплекс Launch Complex 3 на побережье в Mid-Atlantic Regional Spaceport (NASA Wallops, США) практически готов. Уже начата поэтапная активация систем перед испытаниями, а официальное открытие намечено на следующий месяц. 📆
📡 По снимкам видно:
— высокая стартовая башня
— минимум один стартовый стол
— инфраструктура для тестов и запусков
🧪 Ракета Neutron:
🔹 до 15 000 кг — в одноразовом варианте
🔹 до 8 000 кг — с возвращаемой ступенью
🔁 Rocket Lab прорабатывает возврат первой ступени — в духе SpaceX
💬 Вопрос, «строит ли Rocket Lab свой Starbase», остаётся открытым. Но LC-3 уже выглядит как стратегическая база многоразовых запусков, что явно указывает на большие амбиции компании. Первый запуск Neutron может стать переломным моментом в мировой космической гонке 🌌🔥
#RocketLab#Neutron#SpaceX#Starbase#космос#ракеты#NASA#новости#многоразоваяракета#технологии