Наверняка вы замечали, что в 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
NEW CONTEST🧘🧘🧘🧘
We are the OG..🔝
We are MONK!🆒
Durov it s a MONK not only on Telegram username but in his concept of life, in his mindset, in all he what to do.
Study his post on his official channel (Telegram, Instangram and X) and you will be excited by the truth that will appear to you.
Durov is a #MONK!👍👍👍
No others narrative, only this is the OG.🆒🆒
Show this truth to the world!!
The best two post on X and on the Main Chat on Telegram will win 15 💎 and 10 💎 respectively.
END OF CONTEST 25 AUGUST AT 8 P.M.👀👀
🚀 Understanding Different Personality Types in Modern Society
PANews posted on X (formerly Twitter) about various personality types observed in contemporary society. The discussion highlights four distinct archetypes: the Cynic, who often expresses skepticism but frequently ends up managing difficult situations; the Strategist, who appears to be disconnected but becomes highly productive as deadlines approach; the Resourceful, who thrives under narratives of scarcity and tends to be frugal; and the Monk, who practices restraint and detachment, leading a life of minimal desires and low volatility.
#personalitytypes#modernlife#cynic#strategist#resourceful#monk#society
🚀 Overview of SBTI's 28 Personality Types
PANews posted on X (formerly Twitter) about the 28 distinct personality types identified by SBTI. These include the 'Controller' who excels in task management and situation handling, and the 'ATM-er' who invests time and emotional value. The 'Dior-s' represents a self-deprecating narrative under pressure, while the 'BOSS' is goal-oriented with strong organizational skills. The 'Thanker' leans towards positive feedback and gratitude, whereas the 'Oh-No' personality anticipates risks and negative outcomes. The 'GoGo' is action-driven, and the 'Sexy' emphasizes style and attraction. The 'Lover' is emotionally invested, and the 'Mum' is nurturing and concerned. The 'Fake' wears a social mask, and the 'OJBK' is conflict-averse. The 'Malo' resonates with the working class, while the 'Joker' uses humor to mask vulnerability. The 'WOC!' is highly reactive, and the 'Thinker' is analytical. The 'Shit' is cynical but often cleans up messes, while the 'ZZZZ' strategically disconnects. The 'Poor' is resource-conscious, and the 'Monk' is restrained and detached. The 'IMSB' is self-deprecating, and the 'Solo' is independent. The 'FUCK' is direct and rebellious, while the 'Dead' feels drained. The 'IMFW' has a low self-assessment, and the 'HHHH' finds humor first. The 'Drunk' is a hidden personality, and the 'Kanye' remains mysterious.
#SBTI#PersonalityTypes#Controller#ATM#Dior#BOSS#Thanker#OhNo#GoGo#Sexy#Lover#Mum#Fake#OJBK#Malo#Joker#WOC#Thinker#Shit#ZZZZ#Poor#Monk#IMSB#Solo#FUCK#Dead#IMFW#HHHH#Drunk#Kanye