Наверняка вы замечали, что в 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
#GLMR/USDT analysis :
#GLMR is in downtrend trading below 200ema. Price has broken down below support zone it is expected to continue declining. For short entry wait for the price to test the resistance zone.
TF : 2h
Entry : $0.1186
Target : $0.0940
SL : $0.1332
#GLMR/USDT analysis :
#GLMR has broken below the 200 EMA and is currently consolidating sideways near the 200 EMA. The price is expected to reverse from there and continue its bearish momentum to test the previous swing low.
TF : 1h
Entry : $0.1547
Target : $0.1415
SL : $0.1635
#GLMR👈
Call given here
Hit 1474
All Target done ✅
142% safe profit in spot
If you invested 1 btc it's now 2.42 btc now 🤑🤑
Signal before pump @ low level
Always trade with us for max profit 😊🤑💃Chk pinned to join👀
We are best pump tracker 🤑
#GLMR👈
https://www.binance.com/en/trade/GLMR_BTC
Buying Zone 610-630
Coin on the brink of 🚀
Buy in parts 👈strictly follow for max profits as its 🚀
Sell
🤑 660-700
🤑 700-750
🤑 750-800
🚀 800- 750 & above
Bullish above -600