Наверняка вы замечали, что в 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
“Lo #sport porta con sé anche delle tentazioni: quella della prestazione a ogni costo, che può condurre fino al #doping. Quella del profitto, che trasforma il gioco in mercato e lo sportivo in divo. Quella della spettacolarizzazione, che riduce l’atleta a un’immagine o a un numero”. A lanciare il grido d’allarme è stato Papa #LeoneXIV che questa mattina, nella Sala Clementina del Palazzo Apostolico, in Vaticano, ha ricevuto in udienza gli atleti italiani e paralimpici che hanno preso parte ai Giochi di #MilanoCortina2026.
"Contro queste derive, la vostra testimonianza è essenziale - l’omaggio ai presenti -. Voi siete stati testimoni di un modo onesto e bello di abitare il mondo. Portate l’idea che si possa gareggiare senza odiarsi. Che si possa vincere senza umiliare. Che si possa perdere senza perdere sé stessi”.
“E questo vale anche oltre lo sport - ha osservato il Pontefice -. Vale nella vita sociale, nella politica, nelle relazioni tra i popoli. Perché lo sport, se vissuto bene, diventa un laboratorio di umanità riconciliata, dove la diversità non è una minaccia, ma una ricchezza”.
“In un’epoca di grandi sfide climatiche, questi Giochi ci ricordano anche il legame tra sport e natura e il nostro dovere di prenderci cura della casa comune”, ha sottolineato il Santo Padre, affidando infine a tutti gli #atleti una missione: “continuare a far sì che la persona rimanga al centro dello sport in tutte le sue espressioni”.
Опубликована новая статья
🟣 2024 🟣 V. 11 🟣 Issue 2 🟣 Art. 202411207 🟣 Letter 🟣
📜 Features of electronic states in the vicinity of band gap and atomic structure of Ta- and Nb-doped Li7La3Zr2O12
👩🎓👨🎓 M. I. Vlasov (http://orcid.org/0000-0002-7814-7489), E.A. Surzhikov (http://orcid.org/0009-0005-3466-6374), A.Yu. Germov (http://orcid.org/0000-0001-6091-1250), E.A. Il'ina (http://orcid.org/0000-0003-1759-5234), I.A. Weinstein (http://orcid.org/0000-0002-5573-7128)
🏛 Institute of High Temperature Electrochemistry of the
Ural Branch of the Russian Academy of Sciences,
https://ihte.ru/?page_id=3106
🏛 Ural Federal University, https://urfu.ru/en
🏛 M.N. Mikheev Institute of Metal Physics of the Ural
Branch of the Russian Academy of Sciences,
https://www.imp.uran.ru/?q=en
🏛 Institute of Metallurgy of the Ural Branch of the Russian
Academy of Sciences, http://www.imet-uran.ru
📚#Li7La3Zr2O12#Ta#Nb#doping#bandgap#oxygen#vacancies
🔗https://doi.org/10.15826/chimtech.2024.11.2.07
https://journals.urfu.ru/index.php/chimtech/article/view/7692
Новая работа регулярного выпуска👇
🟢 2022 🟢 V. 9 🟢 Issue 4 🟢 No. 20229405🟢
📜 Phosphorus-doped protonic conductors based on BaLanInnO3n+1 (n = 1, 2): applying oxyanion doping strategy to the layered perovskite structure
👩🎓👨🎓 N. Tarasova (https://orcid.org/0000-0001-7800-0172), A. Galisheva (https://orcid.org/0000-0003-4346-5644)
🏛 Institute of High Temperature Electrochemistry, http://www.ihte.uran.ru
📚#layered#perovskite#oxyanion#doping#proton#conductivity#BaLaInO4#BaLa2In2O7
🔗https://doi.org/10.15826/chimtech.2022.9.4.05
https://journals.urfu.ru/index.php/chimtech/article/view/5979