Наверняка вы замечали, что в 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
🌎 Scientists researching the mysteries of parallel worlds often reference "brane theory," which suggests our universe could be a 3D surface, or 'brane,' floating in higher-dimensional space. In this model, multiple branes—each a universe with its own laws—could exist, and gravity may leak between them, which physicists are testing with experiments at facilities like CERN. ✨
#physics⚡#universe⚡#dimensions
👉subscribe Interesting Planet
👉more Channels
🌎 The concept of "extra dimensions" in physics comes from string theory, which requires at least 10 dimensions for its mathematical consistency. While these extra dimensions could allow for parallel universes, none have been directly detected. Experiments like those at CERN look for signs such as missing energy that might hint at hidden dimensions. ✨
#physics⚡#stringtheory⚡#dimensions
👉subscribe Interesting Planet
👉more Channels
🌎 The concept of higher dimensions beyond the familiar three of space and one of time appears in advanced physics, especially string theory. String theory mathematically requires up to 10 or 11 dimensions to explain gravity and fundamental particles. These extra dimensions are thought to be compact and hidden, possibly curled up at sizes far smaller than atoms. ✨
#dimensions⚡#stringtheory⚡#physics
👉subscribe Interesting Planet
👉more Channels
🌎 In 2022, a study using gravitational wave detectors like LIGO examined whether ripples from colliding black holes hinted at hidden dimensions. The research found no evidence for extra spatial dimensions, setting new constraints on theories that propose parallel universes. ✨
#physics⚡#blackholes⚡#dimensions
👉subscribe Interesting Planet
👉more Channels
🌎 The "brane multiverse" is a scientific idea suggesting our universe might be a three-dimensional "brane" floating in higher-dimensional space. Some versions of string theory propose multiple branes could exist close together, and rare collisions might even trigger new big bangs. The concept arises from efforts to unify gravity with quantum physics. ✨
#multiverse⚡#dimensions⚡#stringtheory
👉subscribe Interesting Planet
🌎 Physicists are searching for evidence of extra dimensions that could exist alongside our three spatial dimensions and time. Experimental efforts, like those at the Large Hadron Collider, look for signs such as missing energy or unusual particle behavior that might indicate the presence of dimensions beyond the familiar four. So far, no direct evidence has been found for extra dimensions. ✨
#physics⚡#dimensions⚡#experiment
👉subscribe Interesting Planet
👉more Channels
Тема шестого дня — картографирование за пределами 2D.
Эту работу подготовил наш коллега @Oreshulya для личного проекта. На карте изображён подводный рельеф небольшого озера Уайтфиш в Канаде. При создании использовалось ПО QGIS для получения картографических данных и Blender 3D для их визуализации.
Основной задачей было показать батиметрические данные в трёхмерном виде, что проблематично сделать с использованием стандартных средств ГИС. Способом изображения для этого была выбрана послойная окраска. Благодаря тому что каждый слой помимо уникального цвета имеет разную высоту в пространстве, создаётся ощущение объёма и глубины, которое на стандартных двумерных батиметрических картах достигается с помощью способа Танака (освещённых горизонталей).
#30DayMapChallenge#Day6#Dimensions#Cartography#GIS