Наверняка вы замечали, что в 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
🍽 Frittata (Tortilla) de pasta 🍽
🍴Ingredientes🍴
✓fideos o espaguetis ya cocinados
✓1 cucharada de aceite de oliva virgen
✓3 cebollas finamente picadas
✓perejil
✓albahaca picada
✓1 tomate cortado en cubitos
✓4 huevos
✓½ taza de leche
✓Queso rallado
🥣 PREPARACIÓN 🥣
👁🗨 Pon aceite en una sartén y fríe las cebollas picadas hasta que queden transparentes.
👁🗨 En un bol bate los huevos y la leche. Añade la cebolla cocinada, el queso rallado, el perejil, albahaca, sal y pimienta.
👁🗨 Por último, pon los espaguetis. Mezcla bien todo.
👁🗨 En una sartén con una gota de aceite vierte la mezcla y cocina a fuego medio-bajo como si se tratase de una tortilla.
👁🗨 Da la vuelta y cocina por ambos lados.
#recetas con sobras
#CAFE#RECETAS ⛾ | Como en las mejores cafeterías: cómo preparar café con leche frío para combatir el calor https://ift.tt/XsRBZSE August 05, 2025 at 12:00PM
🍧 Arroz con Leche Cubano 🍧
🍴INGREDIENTES 🍴
3/4 tazas de arroz de grano largo o corto
2 tazas de agua
1/4 de cáscara de un limón amarillo mediano
2 palitos de canela en rama
1 lata (12 onzas) de leche evaporada
1 lata (14 onzas) de leche condensada azucarada
1 cucharadita de extracto de vainilla
1/4 cucharadita de sal
Mas agua, si es necesario
🥣 PREPARACIÓN 🥣
👁🗨 En una olla a fuego mediano a mediano alto, hierve el arroz, el agua, la cáscara de limón amarillo y los palitos; luego baja a fuego bajo y tapa. Cocina a fuego lento durante 10 minutos, o hasta que el arroz esté tierno.
👁🗨 Una vez que el arroz esté tierno, retira la cáscara de limón con una cuchara.
👁🗨 A fuego lento, agrega a la misma olla, gradualmente la leche evaporada y la leche condensada endulzada, revolviendo constantemente para evitar que el arroz se pegue.
👁🗨 Agrega la sal y el extracto de vainilla, revolviendo constantemente.
👁🗨 Cocina; continúa revolviendo durante unos 7 a 10 minutos, hasta que la mezcla espese. Hasta obtener la consistencia deseada.
👁🗨 Retira del fuego y deja enfriar antes de colocar en el refrigerador tapado.
Nota: el secreto para un gran arroz con leche es que el arroz este tierno! Siempre poner el arroz a remojar en agua al menos dos horas antes de comenzar a preparar la receta.
#postres#recetas#cubanas