Наверняка вы замечали, что в 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
News: #Ethiopia, #European Investment Bank sign €110 million loan to support rural finance, development
The Government of Ethiopia and the European Investment Bank (#EIB) have signed a €110 million loan agreement to support the implementation of the Rural Finance and Development Project, aimed at expanding access to finance for micro-enterprises and small businesses across the country.
The agreement was signed on Monday by Minister of Finance Ahmed Shide and Diederick Zambon, Head of Division for Public Sector at the EIB.
According to the Ministry of Finance, the project seeks to promote sustainable agricultural and economic practices by improving access to financial services, particularly in rural areas. The Development Bank of Ethiopia will channel the funds to rural financial institutions, including microfinance institutions and cooperatives.
The project is co-financed by the...
https://www.facebook.com/AddisstandardEng/posts/pfbid02RQCZ4fGrkSWhJ5YqhBxhbrFwUTy28vSuwRaiWyAysDNh2DqpfTJgdTin6pWZj9k2l
News: #Ethiopia to receive €40 million financing for agricultural exporters under #EIB-#Zemen_Bank agreement
Ethiopian agricultural businesses, particularly exporters of coffee and horticultural products, are set to benefit from up to €40 million in financing under a new agreement between European Investment Bank Global and Zemen Bank SC, according to information shared with Addis Standard by EIB.
https://addisstandard.com/ethiopia-to-receive-e40-million-financing-for-agricultural-exporters-under-eib-zemen-bank-agreement/
Zemen Bank Matches LOC €20 million European Union Investment Bank For Agribusiness. Read more.
https://borkena.com/2026/04/21/zemen-bank-matches-loc-e20-million-european-union-investment-bank-for-agribusiness/#Ethiopia#bank#ZemenBank#loan#EIB#Investment#Agriculture@s_zemen @EIB
👆👆👆👆👆ко дню понедельника:
Европа вкладывает миллиарды в зеленое будущее Центральной Азии
Иногда перемены приходят не внезапно, а как долгожданный рассвет. Сегодня таким рассветом для всего региона стала новость из Брюсселя:
Европейский союз, Европейский инвестиционный банк и Европейский банк реконструкции и развития объявили о крупнейших за историю вложениях в «зеленую» энергетику Центральной Азии, таких как строительство ГЭС Камбаратинская-1 в Кыргызстане.
Объем инвестиций - почти два миллиарда евро.
На площадке Global Gateway Forum уже подписаны соглашения на 900 миллионов евро от ЕС и ЕИБ, а ЕБРР готовит еще 1,3 миллиарда.
Общая стоимость проекта - от 5 до 6 миллиардов долларов. Это по праву можно считать энергетическим событием десятилетия.
Проект, меняющий ландшафт региона
Гидроэлектростанция Камбаратинская-1 будет возведена на реке Нарын, в южной части Кыргызстана. Ее мощность - 1 860 мегаватт, а за плотиной высотой 256 метров образуется гигантское водохранилище на 5,4 миллиарда кубометров воды.
Это - энергия для более миллиона домов и новая система управления водными ресурсами для сельского хозяйства Кыргызстана, Казахстана и Узбекистана.
🤝 Редкий пример доверия
Камбаратинская-1 станет совместным проектом трех стран - Кыргызстана, Узбекистана и Казахстана, каждая из которых получит долю примерно в треть.
Такого уровня кооперации между центральноазиатскими государствами не было десятилетиями.
Что это значит для региона
Проект Камбаратинской-1 даст Центральной Азии чистую и доступную энергию, укрепит продовольственную безопасность, снизит углеродные выбросы и привлечет новые международные инвестиции в устойчивое развитие.
#Kambarata1#Кыргызстан#Казахстан#Узбекистан#ЦентральнаяАзия#Европа#Гидроэнергетика#GlobalGateway#EBRD#EIB#EU#ЗеленаяЭнергия