Наверняка вы замечали, что в 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
🎙 INVEST REPORT Injex Finance - The 1inch of Injective 🔥🥷
⚖️ INVEST REPORT project rating 9/10 ⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️
It is the final day of Round 1 in $INJX Presale, and this is your moment to act before the price jumps.
Join Presale: https://sale.injex.fi/
Don’t let this chance slip through your fingers! Secure your $INJX tokens now at the most favorable price. Join the future of decentralized finance on the Injective chain.
Act now, join the presale.
https://sale.injex.fi/
#INJ#Presale
#PoshCoin#Presale
Public Presale Started NOW!
ℹ️ Info About PoshCoin: PoshCoin is a new crypto token that will revolutionize the digital economy – mainly selling and purchasing goods in the cannabis sector.
PreSale Link:https://www.pinksale.finance/launchpad/0xD90267576273A0d640850De1beFdF366744C13DB?chain=BSC
⚜️ Token Information
🔶Token Name: Poshcoin
🔶 Symbol: PSCN
🔶Type: BEP-20
🔶 Minimum Buy: 0.0035BNB
🔶 Maximum Buy: 35BNB
🌐 Useful links :
Telegram Channel Platform: https://t.me/PoshCoinPSCN
Telegram platform group: https://t.me/poshcoin_pscn
JOIN PRESALE NOW!
Disclaimer: Please do your own research before joining to any project.
#MetaCubez#Presale
A Metaverse Full of Possibilities
✔️ Licenced From Singapore and UAE
✔️ Audited Smart Contract
✔️ KYC Team
✔️ 30% Burnt
✔️ 60% Locked
✔️ Professional team from all around the world
MetaCubez Pre-Sale is Live Now!🔥🔥
https://linktr.ee/MetaCubez
Check out there Social Links
Channel | Community | Website | Instagram | Discord | Twitter
🚨🚀 Exciting news for all crypto enthusiasts! 🌟🤑
🚨🚀 25% of DLX tokens will be available for pre-sale on Pinksale Finance from April 25-30, 2023. This is a rare opportunity to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
Hey all you crypto enthusiasts! We've got some awesome news to share - the pre-sale for DLX tokens on Pinksale Finance is starting soon! From April 25-30, 2023, 25% of the total DLX token supply will be available for purchase. Don't miss out on this chance to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
🔥👇 Web site Dollex Network
https://dollox.network/
‼️Note: We are airdrop hunters and only participate in free airdrops, please do not send any fee for receiving airdrop tokens.
🚨🚀 Exciting news for all crypto enthusiasts! 🌟🤑
🚨🚀 25% of DLX tokens will be available for pre-sale on Pinksale Finance from April 25-30, 2023. This is a rare opportunity to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
Hey all you crypto enthusiasts! We've got some awesome news to share - the pre-sale for DLX tokens on Pinksale Finance is starting soon! From April 25-30, 2023, 25% of the total DLX token supply will be available for purchase. Don't miss out on this chance to invest in one of the hottest tokens on the market! #PinksaleFinance#presale💰💸💎
🔥👇 Web site Dollex Network
https://dollox.network/
‼️Note: We are airdrop hunters and only participate in free airdrops, please do not send any fee for receiving airdrop tokens.
💎 MetaGram Presale — Early Investors’ Edge!
Be among the first to secure $MGR before listing at $0.0519.
⚡️ Buy & Earn instantly with our new swap-style UI:
0.001 BNB → 50 $MGR (free airdrop)
0.01 BNB → 500 $MGR
🤝 Referrals: +50% $MGR & +50% BNB back
🔥 Early entry = maximum upside. Don’t wait until the price goes public.
👉metagram.digital
#MetaGram#Presale#BNB#Crypto
💎 MetaGram Presale — Early Investors’ Edge!
Be among the first to secure $MGR before listing at $0.0519.
⚡️ Buy & Earn instantly with our new swap-style UI:
0.001 BNB → 50 $MGR (free airdrop)
0.01 BNB → 500 $MGR
🤝 Referrals: +50% $MGR & +50% BNB back
🔥 Early entry = maximum upside. Don’t wait until the price goes public.
👉metagram.digital
#MetaGram#Presale#BNB#Crypto