Наверняка вы замечали, что в 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
Breaking: A Boeing 737 plane that plummeted into a Chinese hillside in 2022, killing all 132 people on board, had its fuel supply cut mid-flight, according to newly released data by the US National Transportation Safety Board (NTSB).
Findings by the NTSB say that the fuel switches on both engines of the China Eastern flight were moved to the "cut-off" position while it was at a cruising altitude of 8,839m (29,000ft) — exactly like the AI171 Air India crash in Gujarat last year.
China has yet to release a final report on the incident, citing national security concerns. #Aviation
BBC Article
GPS Renewables started construction on India's first Ethanol-to-Jet (ETJ) Sustainable Aviation Fuel (SAF) plant in Pudimadaka, Andhra Pradesh, under an NTPC Green Energy EPC contract. Using Lummus Technology and Xytel India's engineering, the facility at NTPC's Green Hydrogen Hub will produce 1,800 tonnes per annum of SAF and renewable diesel. The process converts CO2-derived ethanol via ethylene conversion, oligomerisation, and hydroprocessing. This project advances India's sustainable aviation fuel scaling and transport sector decarbonization goals.
Source
#Aviation
India is redefining the rules of the game with its upcoming airport privatisation plans, aiming to curb monopolistic tendencies in the aviation sector. The govt is laying down new ground rules to promote a healthy competitive environment.
Source
#Aviation
IndiGo resumes direct India–China flights with Delhi–Guangzhou service; first landing on Apr 28 restores connectivity after ~4–5 year gap. Airline operates daily routes using A320 aircraft, expanding to Shanghai and Kolkata routes with ~21 weekly departures.
#Aviation
https://t.co/3nGRpvMboR
🛠️ AIESL plans to expand the Nagpur aviation maintenance facility into a major MRO hub.
📍 The company is seeking EASA certification to service Airbus aircraft for global airlines.
✈️ The site has already completed 240+ maintenance checks on Boeing and Airbus fleets.
#Aviation
https://t.co/GosIlxNf56
Embassy of France in India
"With effect from 10 April 2026, Indian nationals possessing an ordinary passport are no longer required to hold an airport transit visa when passing through the international zone of airports located on French territory. This measure applies to passengers remaining in the international zone during a layover at a French airport en route to a third country."
#Aviation
✈️ India's newest regional airline Star Air will launch 38 weekly flights to Mundra from 25 April.
🌐 Direct links to Mumbai, Hindon, Goa (Mopa) & Surat plus one-stop routes.
🪑 Adds 4,100+ weekly seats, boosting regional connectivity.
#Aviation
https://t.co/0Ys3hXULvs