Наверняка вы замечали, что в 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
🔰Airdrop: Ebees
💸Value: 8000 #EBS worth of ($12)
🪐Referral: 2000 $EBS for Each ($3)
⏳Distribution Date: After TGE
💎Ratings: ⭐️⭐️⭐️⭐️⭐️
🔗Airdrop Link: https://t.me/EbeesAirdropRound2Bot
Note: Airdrop will end on 5th September and rewards will be distributed to the winners TRC-20 wallet on after .
TGE September 6th 2022
Disclaimer: Please do your own research (DYOR) before joining to any airdrops project, also airdrop is 100% free. Don't send any fee or penny for receiving airdrop tokens. Also we don't recommend you to invest in any new projects, just join airdrop for free
#EBS Television founder Aman Fissehatsion dies
Aman Fissehatsion, founder and Chief Executive Officer of EBS Television, has died after receiving medical treatment for an illness, the station announced today, 11 February 2026.
In a statement issued Wednesday, EBS Television said Aman “played an irreplaceable role in the growth of #Ethiopian media and the success of EBS.” The station described him as “a man of outstanding vision,” adding that while his passing represents a loss to both his family and the institution, “the vision of Aman Fissehatsion will continue.”
The management and staff of EBS Television also expressed what they described as deep sorrow over his death.
Prime Minister #Abiy Ahmed (PhD) extended condolences following the announcement. In a message posted on his official Facebook page, the Prime Minister said Aman was “one of those who played a crucial role in the development of Ethiopia’s private media.”
https://www.facebook.com/share/p/189cm3oGQX/
#java#ai#apache_kafka#aws#azure#cloud#cloud_first#cloud_native#ebs#gcp#kafka#llm#messaging#minio#s3#serverless#spot#streaming
AutoMQ provides a cloud-native alternative to Apache Kafka that runs on S3 storage, cutting costs by up to 90% while enabling instant scaling and eliminating cross-zone traffic fees. It offers high reliability, serverless operation, and full Kafka compatibility, making it easier and cheaper to manage large-scale data streaming without sacrificing performance or features.
https://github.com/AutoMQ/automq