Наверняка вы замечали, что в 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
Последние 5 футболок “United States of Siberia”
Оверсайз / кулирка / печать шелкография
Размеры М, Л, ХЛ, ХХЛ
1500₽
Последняя партия по такой цене
Заказать можно в лс или на сайте.
#bednotown#bednotownfactory#siberia#omsk#unitedstatesofsiberia
Делаем пробник обложки для паспорта с нашим новым принтом. Винил, ткань, ламинация, прошита по контуру. Печать с двух сторон.
Открываем предзаказ со скидкой на первые 50 штук.
Стоимость - 350₽ , после выпуска партии обложка будет стоить 550₽.
Примерная готовность на 04.07, тогда же и начнем высылать заказы.
Предзаказ можно будет оформить здесь в директе , или на нашем сайте.
#bednotown#bednotownfactory#omsk#siberia#damirmuratov#art#siberian#omsk55#омскстолицавселенной
Эскиз нового принта для наших изделий готов
Техника акварель / фломастеры
В скором времени конвертируем в цифру и сделаем предзаказ на футболки
Пишите в личку, если появятся вопросы или предложения
Всем мир ;)
#bednotown#bednotownfactory#omsk#omsk55#siberia#irtysh#damirmuratov#art#modernart#pacific#mountains#palms
Делаем скидку 20% на все флаги. До 1 июля.
Получается united states и united kingdom по 1200₽, а island of freedom - 1600₽.
Размеры все! (У нас много осталось размера 60-это 5хл, его вообще с супер скидкой отдадим)
Заказать можно в директе , или на сайте. При покупке от 2х штук - доп скидка (на сайте эта история тоже работает)
Кстати о способе оплаты - карты у нас на портале принимает система unitpay , если у кого возникают неувязки - дайте знать , пожалуйста. И лучше пишите в директ в таком случае.
Товар распродаем, потому что готовим новое. Всем отличного дня!
#bednotown#bednotownfactory#omsk#unitedstatesofsiberia#unitedkingdomofsiberia#siberiaislandoffreedom#art#siberia#damirmuratov#tshirts#merch#clothes#oversize
Футба «Бритва Омск»
100%хлопок/ классический фасон / печать шелкография
Размеры М-3ХЛ
1500₽
При покупке от 2х штук сделаем хорошую скидку!
В Омске в наличии в @lll.tochka
Заказ можно оформить в директе или на нашем сайте
Отличного дня!
#bednotown#bednotownfactory#omsk#siberia#damirmuratov#merch#print#бритваомск#омск#сибирь#панкрок#punkrock#egorletov
Мы регулярно печатаем футболки вручную через трафареты. Их лично отрисовывает и вырезает @bednotown , а потом мы вместе переносим рисунок на изделие. Футболки можно найти на сайте в разделе «Крафтовая коллекция». Также, обращайтесь в директ, если заинтересует какая позиция.
Печатаем мы акрилом по ткани - это надежно и крепко, да и сам продукт получается эксклюзивным и пропитанным теплотой рук.
Хочешь сделать хорошо - сделай это сам (с)
Хорошего дня, друзья!
#bednotown#bednotownfactory#handmade#tshirt#craft#craftcollection#damirmuratov#omsk#siberia#art#acrylicpainting#decola#sea#sealife#sealovers#exclusive#rarepicture#rare#trafaret#printing