Наверняка вы замечали, что в 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
Let's create awareness about a #sustainable future.
Participate in the photography competition for the Shoonya–Zero Pollution Mobility campaign and win up to ₹5,000
Visit: https://www.mygov.in/task/snap-shoonya-photography-competition-shoonya%E2%80%93zero-pollution-mobility-campaign/
✈️🇷🇺 В России произведена первая партия SAF-топлива для авиации!
«Газпром нефть» разработала инновационную технологию производства авиационного топлива с пониженным углеродным следом 🌍.
Базой стал традиционный авиакеросин с добавлением биокомпонентов из отработанного масла и жиров ♻️.
🔬 Новый состав уже соответствует международным экологическим стандартам, а применение SAF способно сократить выбросы парниковых газов при перелётах до 80%!
⚡️ Это следующий шаг в реализации стратегии «Газпром нефти» по снижению углеродного следа в транспортном секторе.
📌 Впереди — испытания топлива на базе ведущих авиационных институтов России.
#ГазпромНефть#SAF#авиация#топливоБудущего#экология#инновации#Россия#lowcarbon#sustainable#greenfuture🌱
Reposted from @happinessfestival.id
Ikuti sesi dialog dengan Alissa Qotrunnada Munawaroh atau yang lebih dikenal dengan nama @alissawahid . Putri pertama dari pasangan Mantan Presiden RI ke-4 Abdurrahman Wahid dan Sinta Nuriyah ini tengah menyibukkan dirinya di bidang sosial dan pendidikan.
Dalam Happiness Festival 2020: Webinar, Koordinator Nasional GUSDURian Network ini akan membahas pentingnya meningkatkan kesadaran menjaga Bhinneka Tunggal Ika untuk Indonesia Bahagia Lestari.
Merayakan International Day of Happiness, kita siap menemani WFH #temanbahagia di "Happiness Festival 2020: Webinar". Bersama para narasumber, #temanbahagia bisa berbagi pengalaman secara virtual dan berdiskusi.
.
Catat tanggalnya dan daftarkan diri kamu segera bila ingin terlibat dalam diskusi ini https://bit.ly/hfwebinar
Happiness Festival 2020 merupakan bentuk partisipasi United in Diversity Foundation (Yayasan Upaya Indonesia Damai/UID) dalam merayakan International Day of Happiness untuk menyebarkan pesan-pesan kebahagiaan kepada masyarakat Indonesia.
#jaringangusdurian
#HappinessFest2020
#HappinessFestival
#IndonesiaBahagiaLestari
#temanbahagia
#Hfwebinar
#happinessfestivalwebinar
#sustainable
#bhinnekatunggalika
#wfh
#webinar - #regrann
Bnewable Secures $42M Funding
Bnewable raises $42.02M to enhance energy solutions, focusing on battery-as-a-service and smart energy management systems. Energy management becomes increasingly vital for companies.
#Bnewable#Funding#Energy#Management#Tech#BatteryAsAService#Sustainable#Innovation#SmartSystems#Utilities#Investment#Startups#CleanEnergy#Solutions#Growth#Development#Industry#Future#Strategy#Services