Наверняка вы замечали, что в 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
🔥TokenPocket Now supports Linea DeFi Assets Management! Powered by Blockin.ai!
Open your TokenPocket 📲 Assets Page ➡️ DeFi Entrance ➡️manage all your #DeFibehaviors including #Staking, #Deposits, #Farming, #Lending, #LiquidityPools etc.
👉https://tokenpocket.pro
Whales Bring Stablecoins to Exchanges
🔹 After the Christmas crypto market dip, a positive trend emerges as whales deposit stablecoins into exchanges.
🔹 Last 24 hours: 7 deposits of $FDUSD on Binance, each at least $9M; one as high as $50M.
🔹 Deposits linked to new launchpool of Bioprotocol $BIO.
🔹 Large stablecoin deposits indicate whales are gearing up for purchases, potentially boosting market prices.
🔹 Bitcoin spot ETFs halted a 4-day outflow streak with $475M inflow yesterday, while Ethereum funds attracted $117M.
More details on whale activity | ETF inflow information
#Crypto#Stablecoins#Binance#Whales#Bioprotocol#ETF#Bitcoin#Ethereum#MarketTrends#Investment#Finance#CryptoMarket#Trading#FDUSD#Launchpool#Deposits#Inflows#PriceAction#HODL#VC
Justin Sun Transfers $245M in ETH
Justin Sun's team has transferred 70,182 ETH to HTX, valued at approximately $245 million. This includes 42,905 ETH unlocked from Lido Finance and 27,277 ETH from Etherfi. Since November 10, Sun has deposited 179,101 ETH worth about $645 million in total, averaging $3,601 per ETH. Analysts suggest Ethereum could outperform Bitcoin in January 2025, potentially increasing the ETH/BTC ratio above 0.04, which may spur altcoin growth. Historical Bitcoin prices show significant growth leading up to Christmas over the years with predictions continuing for 2025. Spot On Chain | Cointelegraph | Simply Bitcoin TV
#Ethereum#BTC#JustinSun#HTX#LidoFinance#Etherfi#Crypto#PriceAnalysis#MarketTrends#Altcoins#ETHBTC#Deposits#Blockchain#Trading#Fundamentals#Investing#CryptoHistory#FuturePredictions#ETFs#Growth
🚀Big news! With the support of Debank and Blockin.ai, we're thrilled to unveil the integration of 10 New Chains for DeFi Asset Management on #TokenPocket: #Gnosischain, #Arbitrum, #Klaytn, #Avalanche, #Aurora, #Conflux, #BTT, #Nova, #ZKsync, and #EOS EVM.
💪Combined with our existing support for #ETH, #BSC, #Matic, #OP, #Moonbeam, #Heco, #FTM, #OKTC, and #Harmony, we now support a total of 19 Chains!
📲On your wallet's assets page ➡️DeFi Entrance ➡️manage your #DeFi assets, explore #Staking, #Deposits, #Farming, #Lending, #LiquidityPools, and More — all of these on-chain #DeFibehaviors.
🔥Explore and manage your DeFi Assets seamlessly with the power of 👉TokenPocket. Check it out today! #DeFi#blockchain#tokenpocket