Наверняка вы замечали, что в 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
Ieri la Cogito Academy ha inaugurato la sua prima lezione in trasferta, e lo ha fatto in una cornice che non poteva essere più evocativa: Roma. Ospiti dell’Accademia Atena, grazie alla generosa accoglienza dell’amico Andrea Muzii, abbiamo dedicato la serata a un dialogo profondo e appassionato su Aristotele, tra metafisica e politica, tra logica e poetica.
È stata una vera immersione nel pensiero, scandita da domande vivaci e riflessioni condivise, sia da chi era presente in sala, sia da chi ci seguiva in collegamento. A impreziosire l’incontro, l’intervento di Guido Vitiello, che ha esplorato con intelligenza e ironia il tema della poetica e della catarsi, offrendo spunti che hanno risuonato a lungo anche dopo la chiusura dei lavori.
Un’esperienza intensa, luminosa, che ha confermato quanto il pensiero, quando è vivo, sappia creare comunità.
#rickdufer#cogitoacademy#accademiaatena
Oggi sono in viaggio verso Ascoli Piceno! Ci vediamo lì nel pomeriggio per parlare di informazione, filosofia, demoni e molto altro! 🤩
#rickdufer#dailycogito#filosofia#cogitostudios#youtube
Il mio proposito 2025: si comincia da Trieste, Bologna, Cadelbosco e altri spettacoli di gennaio! 🤩
E buona fine di 2024 a tutti voi!
#rickdufer#dailycogito#filosofia#cogitostudios#youtube#teatro
https://youtube.com/shorts/HWQP9l6s-7o?feature=share
Trieste mi vuole bene ed è bello perché io le voglio ancor più bene. Due giorni ricchi, intensi, che difficilmente dimenticherò. Una ragazza mi ha detto che sta facendo la tesi di laurea su "Seneca tra gli zombie". Una signora mi ha abbracciato con un affetto commovente. Eravate in tanti e tutti stupendi e io mi sento volare. Il 2025 a teatro non poteva iniziare meglio di così e ora ho la carica giusta per affrontare tutto ciò che ci aspetta (prima di tutto MONTESCUDO, oggi alle 18)!
Grazie grazie grazie! E qualche fotina da Trieste per voi.
#rickdufer#dailycogito#filosofia#cogitostudios#youtube#trieste#senecaneltraffico#teatro
Se il 29 aprile "Dio era morto", a fine maggio sarà sicuramente "Rick DuFer è morto" 😂 Con l'uscita del nuovo libro per Feltrinelli abbiamo un po' esagerato con l'organizzazione delle presentazioni, ma ho così tante cose da raccontarvi che non ho potuto resistere. Ci vediamo un po' dappertutto, presto arriveranno date anche al sud, ma nel frattempo Roma, Torino, Milano, Cesena e tante altre città saranno raggiunte! Spero di vedervi numerosi, questo libro non vi lascerà indifferenti. Tutte le info qui: https://www.dailycogito.com/eventi
#rickdufer#dioeramorto#filosofia#feltrinelli#instabook#eventi#dalvivo#dailycogito#renatominutolo#nietzsche