Наверняка вы замечали, что в 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
Было много вопросам по аирдропам.
Аирдроп - это как подарок, который люди получают в мире криптовалют. Он используется, чтобы привлечь внимание к новым валютам, которые только появляются. Раньше его давали за то, что люди рекламировали эти валюты. Сегодня аирдропы могут быть разными и даваться за разные действия, например, за майнинг или за стейкинг, а также за другие активности. Получать аирдропы не плохо, если валюта и действия для получения дозволенны. Но если нужно сделать что-то неправильное- запрещенное в исламе, чтобы получить аирдроп, лучше отказаться, потому как за этой действие будет записан грех. Важно помнить, что участвовать в чем-то запрещенном - это плохо.
#CRYPTOHALAL
При решении заняться торговлей на рынке криптовалют важно хорошо изучить вопрос дозволенности той или иной монеты.
Именно поэтому мы создали бот, который даёт информацию о каждой криптовалюте на ее дозволенность в рамках Шариата, которая уже проверена на нашем канале.
На наших каналах мы постепенно выставляем монеты.
А в боте есть все монеты, что проверены и выставлены на канале доктора Мухаммада.
✈️Вы сможете получить больше информации в нашем боте✈️
Ссылка на бот👉🏻@cryptohalal_bot
*для активации бота необходимо подписаться на канал @cryptohalal_ru
#HALALCRYPTO
#CRYPTOHALAL
📢Crypto Halal приглашает вас на прямой эфир с командой Umma Token, включая основателя Umma Life и Umma TokenИсу Дагестани!
Обсудим самые важные вопросы о проекте, узнаем о том, как он запускался на платформе Polykick, о сегодняшнем положении дел, его планах на будущее, перспективах и многое другое с возможностью для зрителей задавать свои вопросы
Присоединяйтесь сегодня в 19:00 (Стамбул) на Crypto Halal!
#CryptoHalal#UmmaToken#Polykick
السلام عليكم 👋! Я Абдулла! 🏜 Помогаем Газе с водой 💧 Присоединяйтесь к нам и делайте добро! 🌟💪#Благотворительность#CryptoHalal#Вода#Газа#Добро
Меня зовут Абдулла 📢 Расскажем про важное событие: мы с фонда Need charity и CryptoHalal раздавали воду в Газе! 💧 Люди были счастливы, помогайте вместе с нами! 🌟#Благотворительность#CryptoHalal#Вода#Газа#Помощь#Добро#Charity#Водоснабжение