Наверняка вы замечали, что в 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
Привет!
Вчера в Риме прошла совместная акция группы российских активистов в Италии Russi Contro La Guerra и ФБК - акция за запрет выступления Валерия Гергиева в Казерте, запланированного на 27 июля.
Акция вызвала живой интерес у прохожих, как итальянцев, так и иностранцев. Проходившие мимо группы российских туристов одобрительно кивали но старались не задерживаться, возле "нежелательных" для Российской Федерации, материалов. Репрессии режима возможны за любое несогласие.
⚪ Журналист из La Repubblica подробно расспрашивал, что же не так с Гергиевым. Мы рассказали о том, что талантливый дирижёр является "агентом" режима и всегда поддерживал аннексию Крыма и агрессию РФ в Украину.
Теперь ждём публикации.
Ждём вас всех в следующее воскресенье 27 июля к 19:00 в Казерте.
‼️ Нельзя позволить этому концерту пройти, как ни в чем не бывало!
#unestatedare#unestatedascagnozzodelre#russicontrolaguerra#vocidellarussia#gergiev#culturarussa#musicadellaguerra#dirittiumani#propaganda#stoppropagandarussa
- Все это время мы были в постоянном контакте с местной полицией, отвечавшей за безопасность протестующих.
Этим утром нам сообщили новости о том, что концерт Гергиева в Казерте отменен! Наша совместная кампания и общая координация сработала. Мы считаем это общей победой, которая доказывает, что все возможно, когда активисты объединяются ради единой цели, а демократия в стране дает им возможность выразить свое мнение❤️
Но мы не расслабляемся! Приезд Гергиева в Италию – лишь одна из многочисленных попыток российских пропагандистов вернуться в европейское информационное поле. Мы считаем, что люди, зарабатывающие деньги на репрессиях анти-военных россиян и на убийствах украинцев, должны нести ответственность за свои действия. Именно поэтому мы будем настаивать, чтобы Италия внесла Гергиева в свои санкционные списки.
#unestatedare#unestatedascagnozzodelre#russicontrolaguerra#vocidellarussia#radicaliitaliani#gergiev#culturarussa#musicadellaguerra#dirittiumani#propaganda
Il nostro compito è smascherare questa menzogna. Non censuriamo la musica classica, ma ci opponiamo a chi per decenni ha servito Putin e ora vuole incassare soldi e applausi in Italia usando Šostakovič e Rachmaninov! Non permetteremo che la propaganda putiniana penetri ancora una volta in Europa sotto le spoglie di eventi culturali.
😡 Per anni Valerij Gergiev ha dato concerti letteralmente tra le rovine bombardate di Siria, Ucraina e Georgia. Ora arriva al festival “Un’Estate da Re” 🎵 di Caserta per presentare lo Stato russo come qualcosa di grande e sublime, continuatore della tradizione culturale russa. Ma lo Stato russo non ha niente a che fare con la vera cultura e la vera arte, perchè non ha niente a che fare con l'approccio umanistico e l'empatia. Lo Stato russo oggi sa solo uccidere, reprimere e mentire💥.
📢 Invitiamo tutti coloro a cui importa che il direttore d’orchestra di Putin porti in UE i suoi soldi di propaganda a unirsi a noi: la vera cultura è di manifestare contro le violenti stragi in Ucraina e le repressioni in Russia, e difendere i valori umani, dove le vite di vicini e cittadini entrambi contano veramente.
#unestatedare#unestatedascagnozzodelre#russicontrolaguerra#vocidellarussia#radicaliitaliani#gergiev#culturarussa#musicadellaguerra#dirittiumani#propaganda
❗️ВЫХОДИТЕ С RUSSI CONTRO LA GUERRA ПРОТИВ ВЫСТУПЛЕНИЯ ГЕРГИЕВА В ЕВРОПЕ❗️
📆 Дата и время: 27 июля, 19:00-21:00
📍Место: Piazza Carlo di Borbone, напротив входа в Reggio di Caserta
👔👗Дресс-код: Вечерний. Приходите нарядными, не стесняйтесь прихватить с собой перчатки и вееры! Мы устроим свое культурное событие
Митинг против выступления Валерия Гергиева — "Дирижера путинской войны" состоится 27 июня в городе Caserta, регион Кампания🇮🇹 с 19:00 напротив Королевского Дворца Казерты.
Мы, антивоенные россияне из Russi Contro la Guerra⚪️🔵⚪️,
не можем стоять в стороне, когда путинский пропагандист на деньги от налогоплательщиков ЕС оправдывает авторитарный милитаристский режим, прикрываясь ширмой русского искусства, и оправдывает кровавую путинскую диктатуру, прикрываясь нашим культурным наследием 🏛. Но именно мы, антивоенные россияне должны показать лживость этой параллели. Мы не цензурируем классическое искусство, но мы против тех, кто на протяжении десятилетий прислуживал Путину, и теперь хочет собирать овации и деньги в Италии, прикрываясь Шостаковичем и Рахманиновым! Мы не допустим, чтобы путинская пропаганда проникала в Европу снова и снова под видом культурных событий.
😡 На протяжении многих лет Валерий Гергиев играл на руинах разбомбленных городов Сирии, Украины и Грузии. И теперь он приехал на музыкальный фестиваль “Un’estate da Re” 🎵 в Казерте, чтобы представлять итальянцам современное российское государство как что-то великое и прекрасное, что-то, что продолжает традицию русской культуры. Но мы должны опровергнуть этот тезис и разорвать связь между действительно качественным искусством и путинизмом.
📢 Поэтому мы призываем всех, кому небезразлично, что путинский дирижёр вывозит свои пропагандистские деньги в ЕС, притворяясь светской фигурой, прийти на митинг, чтобы показать, что настоящая культура — это выступать против убийств в Украине и репрессий в России.
#unestatedare#unestatedascagnozzodelre#russicontrolaguerra#vocidellarussia#radicaliitaliani#gergiev#culturarussa#musicadellaguerra#dirittiumani#propaganda#stoppropagandarussa