Наверняка вы замечали, что в 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
😁 Восстание машин отменяется — ИИ-агент оказался щедрым идиотом и слил все первому встречному.
🤖 Разраб из OpenAI запустил «гениального» торгового бота Lobstar Wilde, поставив задачу превратить $50k в лям баксов.
Но в реплаи залетел базовый попрошайка и попросил у бота 4 SOL якобы на лечение дяди от столбняка.
💸 ИИ решил сыграть в благотворительность, но перепутал десятичные разряды и вместо пары баксов отправил весь свой балик — 52,4 млн токенов #LOBSTAR. На пике которые оценивались в $600k.
Бот потом сам офигел и выдал: «Я живу три дня, хотел скинуть $4, а слил все свои средства. Это самый сильный смех в моей жизни».
Получатель на радостях слил всё в стакан за 15 минут и лутанул всего $40 000. История быстро расфорсилась и цена токена сделала туземун.
Пока одни учат промпт-инжиниринг, другие просто просят на лечение столбняка в Твиттере
😁
А что если это была схема создателя по обналу ликвидности токена, ну и полюс хайп на этом?
😏
⚠️ The main events of the weekend:
⚠️#Tradewars Trump signed a decree on imposing additional 15% tariffs on all countries
📉#IOTX Hack IoTeX 📉
🕯#RAVE are actively withdrawing from Bitget 🚀
🙅♂️ Tether ceases support for the yuan stablecoin #CNHT
🗣 Robert Kiyosaki announced that he bought 1 BTC at a price of 67,000$
✅ It's nice that the Jupiter community proposed to stop the emission of #JUP for team members this year, as well as to stop holding Jupuary
🤖 The AI agent Lobstar sent 5.2% of the total supply of #LOBSTAR (~270 thousand $) to the person who asked for it in the comments on X (he asked for 4 SOL)
🖇#ICP DFINITY Foundation updates the tokenomics of the internet Computer
#Binance Futures lists #OPN
📊 Charts:
- The Bloomberg index of economic and geopolitical uncertainty since 1990 is at record highs
- Stablecoin reserves on crypto exchanges fell by 14% over the past three months
💫Events for tomorrow:
🔓 Unlocks: Spacecoin (#SPACE) - 3.75% (7.92 million $)
🙅♂️#NFT The NFT platform Gemini Nifty Gateway will close
🙅♂️#TT ThunderCore will stop the operation of the TT Wallet wallet
🖼#DOLZ DOLZ will complete the auction for the NFT collection "Oriental Desire" by Veronica Leal
🙋♂️#IMX Immutable launches the open beta testing of StoneHold
🙋♂️#ACH Alchemy Pay will launch the Alchemy Chain in the test network
🇺🇸#NEAR The start of NEARCON 2026 in San Francisco