Наверняка вы замечали, что в 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
❗️Американская делегация во главе с вице-президентом Джей Ди Вэнсом покинула Исламабад
Несколько фактов вокруг переговоров:
▪️Дата, время и место следующего раунда переговоров США и Ирана неизвестны — агентство #Tasnim.
▪️Вэнс сообщил, что Иран и США не смогли прийти к соглашению по итогам переговоров.
▪️По словам Джей Ди делегация США уезжает из Исламабада, передав Ирану последнее и наиболее выгодное предложение. Решение за Тегераном.
▪️Также вице-президент США заявил, что пока не видит готовности Ирана отказаться от возможности разработки ядерного оружия.
▪️Власти Ирана выдвинули разумные предложения на консультациях с США в Исламабаде и готовы не спешить с переговорами, поскольку мяч находится на стороне Вашингтона — Tasnim.
▪️Главное расхождение, по информации источников портала, связано с Ормузским проливом.
▪️Иран и США достигли понимания по ряду вопросов, но по 2-3 важным темам мнения разошлись — МИД исламской республики.
🇮🇷🇱🇧 Sostegno dell’Iran alla sovranità e all’integrità territoriale del Libano
Il Ministro degli Esteri iraniano, Abbas Araghchi, ha ribadito in una conversazione con il Presidente del Parlamento libanese Nabih Berri il pieno sostegno di Teheran alla sovranità, all’indipendenza e all’integrità territoriale del Libano.
Durante il colloquio di venerdì, Araghchi ha condannato le aggressioni del regime sionista contro il Libano, sottolineando che l’obiettivo di Israele è distruggere le infrastrutture vitali e forzare lo sfollamento dei cittadini libanesi dalle loro terre. Ha inoltre fornito un resoconto sulla recente aggressione USA-Israele contro l’Iran e sulle risposte decisive delle Forze armate iraniane.
Entrambe le parti hanno evidenziato l’importanza dell’unità interna libanese per contrastare i piani stranieri e hanno ribadito la volontà di rafforzare le relazioni bilaterali.
🇮🇷 Iran e Libano uniti di fronte alle minacce comuni.
#Iran#Libano#Sovranità#Resistenza#Tasnim
https://www.marx21.it/internazionale/liran-ribadisce-il-sostegno-alla-sovranita-del-libano/
🇮🇷 Iran: Pezeškiyān cita le proteste "No Kings" e accusa: "Gli USA sono stanchi della politica Israel First"
In piena guerra contro l'Iran, il presidente Mas'ud Pezeškiyān lancia un messaggio chiaro al popolo americano. Riprendendo le proteste "No Kings" che agitano gli Stati Uniti, il leader iraniano afferma che una parte crescente della società nordamericana rifiuta la subordinazione di Washington alla linea del regime sionista.
«Gli esperti di IA negli USA dovrebbero far capire a Trump la realtà delle persone che protestano contro la politica "Israel First"», ha scritto su X. «Sono stanchi che re israeliani governino sulla democrazia americana».
Il riferimento è alla crescente inquietudine interna dopo l’aggressione USA-Israele contro Teheran, scatenata dall’assassinio dell’ayatollah Khamenei il 28 febbraio. Secondo Teheran, i bombardamenti su obiettivi civili e militari hanno causato vittime e danni ingenti, mentre le rappresaglie iraniane con missili e droni hanno colpito basi statunitensi e israeliane.
Pezeškiyān invita a non confondere i governi con i popoli: “Il popolo americano è arrabbiato. Ascoltate il vostro Paese”.
#Iran#USA#NoKings#IsraelFirst#Tasnim#Geopolitica
https://www.marx21.it/internazionale/iran-pezeskiyan-cita-le-proteste-no-kings-e-afferma-che-gli-statunitensi-respingono-la-politica-israel-first/