Наверняка вы замечали, что в 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
📉Quebec considers slashing permanent immigration targets to 25,000
Quebec is considering a significant reduction in its annual permanent immigration targets, potentially as low as 25,000 people.
This marks a sharp decrease from the projected 64,000 for 2025. Immigration Minister Jean-François Roberge outlined three potential scenarios: 25,000, 35,000, or 45,000 immigrants annually. The move is driven by rising unemployment, a worsening housing crisis, and concerns over preserving the French language in Quebec.
Additionally, the province aims to cut the number of temporary immigrants under federal programs from over 400,000 to 200,000.
#Quebec#immigration
🍁Maple Chronicles
Quebec premier says Ottawa should forcibly relocate half of asylum seekers
Premier François Legault has made immigration a major focus of his visit to Paris, demanding that the federal government force asylum seekers in Quebec to move elsewhere, including people who have already settled in the province.
Half of the would-be refugees currently in Quebec should be transferred to other provinces, he told reporters on Wednesday at the offices of the Quebec delegation in Paris.
Legault’s latest remarks follow similar comments on Tuesday, when he said his government has asked Ottawa to create waiting zones for asylum seekers entering the country, similar to a system that has existed for decades in France.
#Quebec#immigration
🍁Maple Chronicles
The flag of Quebec is blue with a white cross and four white fleur-de-lis. It was officially adopted on January 21, 1948. The blue means the sky, the white cross means faith, and the fleur-de-lis are old French symbols.
The flag is a reference to Quebec’s French history and culture. 🇨🇦✝️⚜️
[Read more]
@googlefactss#Quebec#Flag#History#Symbols
📌Glencore приостанавливает инвестиции в медеплавильный завод в Квебеке из-за экологической неопределенности🌍
Во вторник швейцарская сырьевая компания Glencore объявила о временной приостановке планируемых инвестиций на сумму $300 млн в медеплавильный завод Rouyn-Noranda Horne в Квебеке, Канада. Завод является крупнейшим предприятием по производству меди в стране и одним из ведущих медных заводов в Северной Америке.
🔥 Основная причина приостановки — отсутствие гарантий соблюдения экологических нормативов, установленных провинцией Квебек. Glencore планировала инвестировать почти $1 млрд в модернизацию завода и сокращение вредных выбросов мышьяка, но переговоры с властями не увенчались успехом.
📈 Возможные последствия:
🔁 Без инвестиций и модернизации завод Rouyn-Noranda Horne перестанет соответствовать экологическим нормам Квебека с марта 2027 года.
🔁 Угроза закрытия завода создаст неопределенность для местной экономики и тысячи рабочих мест.
🔁 Будущее медного аффинажного завода Glencore в Монреале также ставится под сомнение.
💡 Glencore заявила, что продолжение инвестиций невозможно без твердых гарантий властей провинции о соблюдении экологических стандартов и сохранении нормальной деятельности завода в долгосрочной перспективе.
👏Власти Квебека пока не прокомментировали ситуацию, но компания ожидает скорейшей реакции и диалога с правительством.
🤑Следите за нашими обновлениями, чтобы оставаться в курсе последних изменений в экономике и политике!
#glencore#quebec#environmentalstandards#coppermaking#metalindustry#ecologicalissues