Наверняка вы замечали, что в 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
#Italia
Il presidente della Regione Veneto, Alberto #Stefani (#Lega|PfE):
“Ci sono prigioni senza sbarre, senza celle, senza guardie. Sono le prigioni della mente, che ti impediscono di vedere il bello fuori, anche quando c’è. Non consentono ore d’aria, non hanno orari, ragioni o un perché. Eppure esistono. E rinchiudono, ogni giorno, migliaia di cittadini veneti di tutte le età. Giovani, anziani, intere famiglie che dobbiamo impegnarci insieme a liberare dalla sofferenza. Per questo ho depositato una proposta di legge per istituire lo psicologo territoriale nel Servizio Sanitario Regionale del Veneto. Un passo concreto per rendere il supporto psicologico più vicino, accessibile e tempestivo. Vicino ai territori. Ringrazio l’Ordine degli Psicologi, i professionisti che hanno contribuito a questa iniziativa e tutti i consiglieri che vorranno sostenerla, con una consapevolezza: la salute mentale non è un tema secondario. È una priorità. Ed è una responsabilità di tutti.”
@Osservatorioitaliano
#Italia#Referendum2026
Il presidente del Veneto Alberto #Stefani (#Lega|PfE) ha votato attorno alle 8:30 nel seggio 8 allestito presso la scuola primaria "A. Locatelli", a Borgoricco.
@Osservatorioitaliano
Il centro destra trova un accordo per le regionali: Edmondo #Cirielli sarà candidato in Campania, Alberto #Stefani in Veneto e Luigi #Lobuono in Puglia.
La coalizione ha inoltre deciso che il primo partito (al momento #FdI) potrà rivendicare la candidatura in Lombardia nel 2028
@UltimoraPolitics
#Veneto – Alberto #Stefani (#Lega) sarà il nuovo Presidente della regione. Sconfitto il candidato del csx #Manildo (#PD).
Succede a Luca #Zaia, in carica dal 7 aprile 2010.
@UltimoraPolitics
#Italia🇮🇹
#Regionali
#Veneto
Risultati finali. Seggi.
Sezioni scrutinate: 4.729/4.729 (100%).
Lega - Liga Veneta Stefani Presidente (#LSP|PfE): 19
Fratelli d'Italia - Giorgia Meloni (#FdI|ECR): 9
Forza Italia Berlusconi Autonomia per il Veneto (#FI|PPE): 3
Liga Veneta Repubblica V.A.: 1
Unione di Centro (#UdC|PPE): 1
🟦 Totale liste di centro-destra: 33¹
Partito Democratico - Manildo Presidente (#PD|S&D): 10
Alleanza Verdi e Sinistra (#AVS|G/EFA|LEFT): 2
Movimento 5 Stelle (#M5S|LEFT): 1
Uniti per Manildo Presidente: 1
Le civiche venete per Manildo Presidente: 1
🟧Totale liste di centro-sinistra: 15
⬛️ Szumski resistere Veneto: 2
¹ Cui si aggiunge il Presidente eletto Alberto #Stefani (LSP)
@TuttoElezioni
Elezioni regionali - Chiuse le votazioni, ora lo scrutinio.
Salvo sorprese, secondo i sondaggi, sono attese le vittorie di:
- Alberto #Stefani (#Lega) in #Veneto
- Antonio #Decaro (#PD) in #Puglia
- Roberto #Fico (#M5S) in #Campania
@UltimoraPolitics
#Italia#Suppletive
✅ Giulio #Centenaro (#Lega|PfE) e Alberto #DiRubba (Lega) sono eletti deputati rispettivamente al posto dell’ex sottosegretario e attuale Assessore all’Industria Massimo #Bitonci e del Presidente della Regione Veneto, Alberto #Stefani.
@OsservatorioItaliano
#Italia🇮🇹
#Regionali
#Veneto
❗️Alberto #Stefani (#LSP|PfE; sostenuto anche da #FdI|ECR, #FI|PPE, #NM|PPE, #UdC|PPE, #PdF|Destra cristiana, #PRI|Centro, #DCR|Centro, #LVR|Autonomisti, liste minori e civici) è stato eletto Presidente della Giunta regionale del Veneto.
@TuttoElezioni
#Italia🇮🇹
#Regionali
#Veneto
Risultati parziali.
Sezioni scrutinate: 2.590/4.729 (54,77%).
🟦 Alberto #Stefani (#LSP|PfE; sostenuto anche da #FdI|ECR, #FI|PPE, #NM|PPE, #UdC|PPE, #PdF|Destra cristiana, #PRI|Centro, #DCR|Centro, #LVR|Autonomisti, liste minori e civici): 63,87%
🟧 Giovanni #Manildo (#PD|S&D; sostenuto anche da #M5S|LEFT, #AVS|G/EFA|LEFT, #IV|RE, #Az|RE, #PiùEU|RE, #PSI|S&D, #Pos|S&D, #Volt|G/EFA, #PRC|LEFT, liste minori e civici): 29,30%
⬛️ Riccardo #Szumski (#Italexit|Euroscetticismo e liste minori): 5,18%
@TuttoElezioni