Наверняка вы замечали, что в 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, 21 noiembrie, Guvernul Republicii Moldova a găzduit ședința ordinară a Comisiei naționale pentru Recensământul populației și locuințelor (RPL) din anul 2024.
În cadrul acestei ședințe, Oleg Cara, directorul general al BNS, a prezentat ✅ raportul privind realizarea Recensământului de probă al populației și locuințelor care a avut loc în perioada 28 august-10 octombrie 2023 și ✅ajustările propuse la subiectele și variabilele recensământului din 2024, pe baza rezultatelor Recensământului de probă.
Un alt subiect abordat se referă la ✅ proiectul hotărârii Guvernului cu privire la data de referință a Recensământului populației și locuințelor în anul 2024 și a perioadei de colectare a datelor.
🔵 Detalii aici: https://statistica.gov.md/ro/activitatile-de-pregatire-catre-recensamantul-populatiei-si-locuintelor-din-anul-12_60807.html#RPL2024, #rplPROBA2023, #RecensamantulPopulatieiSiLocuintelor2024
✅În cadrul vizitelor de lucru în localitățile selectate pentru desfășurarea Recensământul de probă al populației și locuințelor, directorul general al BNS, Oleg Cara, s-a întâlnit cu membrii familiei lui Serghei si Vasilisa Surugiu din satul Crihana Veche, Cahul, pentru a le vorbi despre rolul și importanța acestui exercițiu în dezvoltarea comunităților locale și a le oferi explicații la unele aspecte care creează preocupări și temeri legate de desfășurarea recensământului.
👉Menționăm că în perioada 28 august – 10 octombrie 2023, în 11 localități din țară se va desfășura Recensământul de probă al populației și locuințelor pentru a testa aspectele de organizare a recensământului de bază care va avea loc anul viitor.
#RPL2024, #rplPROBA2023, #RecensamantulPopulatieiSiLocuintelor2024
‼𝐀𝐬𝐭𝐚̆𝐳𝐢, 𝐥𝐮𝐧𝐢, 𝟐𝟖 𝐚𝐮𝐠𝐮𝐬𝐭 𝟐𝟎𝟐𝟑, 𝐢̂𝐧𝐜𝐞𝐩𝐞 𝐑𝐞𝐜𝐞𝐧𝐬𝐚̆𝐦𝗮̂𝐧𝐭𝐮𝐥 𝐝𝐞 𝐩𝐫𝐨𝐛𝐚̆ 𝐚𝐥 𝐏𝐨𝐩𝐮𝐥𝐚𝐭̦𝐢𝐞𝐢 𝘀̦𝐢 𝐋𝐨𝐜𝐮𝐢𝐧𝐭̦𝐞𝐥𝐨𝐫!
✅Recensământul de probă se va desfășura până la data de 𝟏𝟎 𝐨𝐜𝐭𝐨𝐦𝐛𝐫𝐢𝐞 𝟐𝟎𝟐𝟑 în sectoare alese din municipiile 𝐂𝐡𝐢𝘀̦𝐢𝐧𝐚̆𝐮 (inclusiv s. Colonița), 𝐁𝐚̆𝐥𝐭̦𝐢, 𝐒𝐨𝐫𝐨𝐜𝐚 și 𝐂𝐨𝐦𝐫𝐚𝐭, orașul 𝐓𝐚𝐫𝐚𝐜𝐥𝐢𝐚 și din satele 𝐆𝐥𝐢𝐧𝐣𝐞𝐧𝐢 din raionul Fălești, 𝐕𝐚𝐫𝐧𝐢𝐭̦𝐚 din raionul Anenii Noi, 𝐁𝐮𝐭𝐮𝐜𝐞𝐧𝐢 din raionul Orhei, 𝐂𝐫𝐢𝐡𝐚𝐧𝐚 𝐕𝐞𝐜𝐡𝐞 din raionul Cahul și 𝐂𝐨𝐩𝐚𝐧𝐜𝐚 din raionul Căușeni.
👉În această perioadă recenzorul de sector va colecta date despre persoane și gospodărie și în acest context încurajăm locuitorii selectati pentru recenzare să primească cu încredere recenzorii în casele lor și să raspundă corect și complet la toate întrebările din chestionar!
#European Union in the Republic of Moldova | #UNFPA Moldova
#RPL2024, #rplPROBA2023, #RecensamantulPopulatieiSiLocuintelor2024