Наверняка вы замечали, что в 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
Join us in 20 minutes to explore the meme ecosystem on #BSC with @LordCheems_Bsc & @Testonbsc! 👀
⏰ 1PM UTC+0
📅 Tuesday, February 11th
📍https://x.com/i/spaces/1BdGYqlaOeXGX
🔜 Tune in to our BNB AMA today to learn about #BSC Governance and discover how you can get involved!
⏰ 1PM UTC
📅 Today, October 24th
📍 BNB Chain X, YouTube, & Binance Live
🔗https://youtube.com/watch?v=vmS1TPNKt4s&ab_channel=BNBChain%28Official%29
🚨 The final sunset of BNB Beacon Chain is set for mid-November!
Migrate your assets to #BSC to avoid losses.
Learn about the asset migration process and necessary actions for users and CEXes on the blog below! 👇
https://www.bnbchain.org/en/blog/final-sunset-plan-of-bnb-beacon-chain
🔥🔥🔥LIVE ON 8 SEPTEMBER (9PM GMT+3) 🔥🔥🔥
TIPSY Token #BSC on 🥞PancakeSwap!!!
The First Blockchain-based Adult-Friendly Entertainment Ecosystem.
Tipsy is an app store - and a place where adults have fun!
It's an open-source marketplace for adult entertainment.
It's a platform where developers can create and deploy apps and games, merchants can sell goods and models can upload and share media or offer services such as video chat.
Tipsy is an ecosystem - with interoperability between apps and games
✅Certik Audited
✅Low MC
✅Very Low Circulating Supply
✅Vesting(Double your Tokens)
✅NFT
🚀 CEX Listing
🔗 Virtual Land Sale
❤️ TipsyFans
🌎 TipsyWorld
📞 Telegram: https://t.me/tipsyonline
🌐 Website: tipsyonline.io
🐦 Twitter: twitter.com/TipsyLabs
🎥 YouTube: https://youtu.be/-uBU3s5uSPk
👋
✅ WELLCOME TO ✅
💯$HGT
✅ PRE-SALE COMING
🚨$HGT — backed by more than hype. It’s backed by gold.
👉 From the producing Hellyer Mine in Tasmania 🇦🇺, $HGT gives you exposure to tokenized gold, lead & zinc — all secured by audited reserves.
🌱 Built on #BSC, powered by hydroelectric energy
🔒 Audited reserves. Institutional custody.
🟢 Gold-backed stablecoin launching in Phase2
🔥 Pre-sale COMING — limited allocation, real utility
🕊Twitter
https://x.com/Hellyergold
🔵Telegram
https://t.me/HGTToken
🌐Website
https://hellyertoken.co/
🚀 New Gem 💎 : Daddy Cake
💲 Total Supply: 1,000,000,000,000,000
⏱ End date : Aug 15th, 2021
⏳ Distribution Date : Sep 1st, 2021
🔘 Rate : ⭐️⭐️⭐️⭐️⭐️
🏚 Aidrop :
🔸 Fill in the form with your details:
https://forms.gle/uzEC2Kp33xiySegp7
🔸 Join the Telegram group:
@DaddyCake_Chat
🔸 Join the Telegram channel :
@daddycakechannel
🔸 Buy:
https://pancakeswap.finance/swap?outputCurrency=0x98899de44fdfe52b385fbe53c82042bbbcb8e673
🔸 Follow the Twitter account:
https://twitter.com/daddycake_bsc?s=21
🔸 Retweet our pinned post on your Twitter account & tag 5 friends.
📑Additional Information:
DaddyCake.io - Meme that’s Hyper deflationary with built in smart staking system, hold, pet, love, & save dogs! on #BSC
Contract:
0x98899de44fdfe52b385fbe53c82042bbbcb8e673