Наверняка вы замечали, что в 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 reply to nevent1q…84kx
_________________________
ok, here, I found it.
quoting
nevent1q…rs88
Sunday is vibe day, so here we go, I vibed this thing in 10 min (7$), Your year on Nostr ! something like spotify’s wrap 🎇
https://nostr.museumhttps://npub1equrmqway3qxw3dkssymusxkwgwrqypfgeqx0lx9pgjam7gnj4ysaqhkj6.nosto.re/%E2%80%A8%E2%80%A8Much improvement since last time i used shakespeare, absolutely love the direction it went. 🫡 Stunning work ! #shakespeare
via Nostr@cxplay
S-s莎s翁w情q史s- 莎翁情史 Shakespeare in Love (1998)
直达链接:https://pan.quark.cn/s/66f2d7600094
#莎翁情史#Shakespeare in Love
#写我深情#恋爱中的莎士比亚
链接:https://link3.cc/sf_com
#电影#喜剧#美国#90年代
Teen Hamlet из серии «Средневековые войны», бумага, пастель, 43х43см, Doping Pong, 2026
#dopingpong#Shakespeare#teen#hamlet#LePetitPrince#littleknight#medievalwars
✍Всемирный день поэзии: там, где границы стираются словом ✍
Сегодня мы отмечаем Всемирный день поэзии — праздник, который напоминает нам о том, что великие строки не знают ни 🌐 географических расстояний, ни политических барьеров.
Когда Пушкин писал свои бессмертные строки, он вдохновлялся работами Байрона — британского поэта-романтика, чей дух свободы нашел отклик у русского поэта. «Цыганы» и другие страны поэта несут в себе отпечаток байроновских мотивов, переосмысленных сквозь призму Пушкина.
Британская поэзия ХХ века была бы иной без влияния русских мастеров слова. Т.С. Элиот, один из величайших английских поэтов прошлого века, признавался в своей зачарованности русской литературой. Его «Пустошь» созвучна апокалиптическим 🌋 видениям Александра Блока.
А знаете ли вы, что Иосиф Бродский, изгнанный из Советского Союза, нашел духовное родство в стихах Джона Донна? Именно британская метафизическая поэзия XVII века стала для него мостом между культурами и эпохами.
«Поэзия — это разговор души с душой через века», — писал Борис Пастернак, чьи переводы Шекспира открыли русскому читателю новое 💥 измерение британской поэзии.
В эпоху, когда многие двери закрыты, поэзия остается открытым окном, через которое души разных народов продолжают вести свой вечный диалог.
#WorldPoetryDay#ВсемирныйДеньПоэзии#Pasternak#Shakespeare#Бродский#LordByron
🎭 ALL THE WORLD'S A STAGE
The 15th Shakespeare Schools Festival South Africa (SSFSA) takes place from May 6 to 31, 2025, in Cape Town. 🇿🇦
Audiences can expect three weeks of bite-sized Shakespeare plays, as talented participants showcase abridged 30-to-40-minute performances of their choice — delivered in innovative and inspiring ways.
💬 “Shakespeare's stories are our stories,” says SSFSA founder Kseniya Filinova.
🌍 Since its inception in 2009, SSFSA has grown into Africa's largest youth drama event focused entirely on Shakespeare.
🇷🇺 In 2016, the Festival launched a pilot project in Russia:
👉https://www.facebook.com/ShakespeareSchoolsFestivalRU
🌐 Official website: https://www.ssfsa.co.za/
#Shakespeare#SSFSA#SouthAfrica#CapeTown#SchoolTheatre#Festival#ShakespeareFestival#TheatreInEducation#Russia#CulturalExchange#ShakespeareInAfrica#RussianCommunity#ShakespeareForAll