目次
- 1 1. Introducción
- 2 2. ¿Qué son las variables de entorno?
- 3 3. Obtener y definir variables de entorno en Python
- 4 4. Optimización de la configuración con variables de entorno
- 5 5. Eliminar y modificar variables de entorno
- 6 6. Variables de entorno por proyecto
- 7 7. Ejemplos prácticos: cambiar idioma o fase
- 8 8. Conclusión
1. Introducción
Python puede manejar variables de entorno para configurar dinámicamente parámetros dentro de un programa. Estas variables contienen información que el sistema o la aplicación consulta en tiempo de ejecución, como el nombre de usuario, rutas de archivos o la configuración regional. En este artículo, veremos cómo manipular variables de entorno en Python, cómo gestionarlas según el entorno y ejemplos prácticos de su uso.2. ¿Qué son las variables de entorno?
2.1 Definición de variables de entorno
Las variables de entorno son información de configuración que los sistemas operativos o aplicaciones consultan al ejecutar programas. Por ejemplo, la ruta predeterminada de archivos, el directorio de inicio del usuario o la configuración del idioma se guardan como variables de entorno en el sistema. Al utilizarlas, los programas pueden controlar su funcionamiento de forma adecuada.2.2 Importancia de las variables de entorno en Python
En Python, usar variables de entorno permite reducir dependencias del sistema y riesgos de seguridad. Datos sensibles como claves API o credenciales de base de datos no deberían escribirse directamente en el código. Usar variables de entorno permite gestionarlos sin exponer información confidencial en el programa.
3. Obtener y definir variables de entorno en Python
3.1 Obtener variables de entorno
Para obtener variables de entorno en Python, se utiliza el móduloos
. Con las funciones os.getenv()
o os.environ.get()
se accede a los valores. Ambas aceptan una clave como argumento y devuelven el valor correspondiente. Si no existe, retornan None
, lo que permite un manejo seguro en el programa.import os
print(os.getenv('HOME')) # Obtener el directorio home del usuario
os.environ
maneja las variables como un diccionario. Con os.environ['HOME']
se obtiene un valor, pero si la clave no existe se lanza un KeyError
. Por eso, get()
resulta más flexible.import os
print(os.environ.get('HOME')) # Obtener home sin error si no existe
3.2 Definir y añadir variables de entorno
También se puede definir o añadir variables conos.environ
. Los valores se guardan como cadenas, por lo que otros tipos deben convertirse antes.import os
os.environ['NEW_VARIABLE'] = 'New Value'
print(os.environ['NEW_VARIABLE']) # Imprime 'New Value'
Estas variables solo existen durante la ejecución del programa y no afectan al sistema. Si ya existe una con el mismo nombre, su valor será sobrescrito.4. Optimización de la configuración con variables de entorno
4.1 Uso de python-dotenv
En proyectos grandes es común gestionar la configuración mediante variables de entorno. Con la libreríapython-dotenv
se pueden definir en un archivo .env
y cargarlas fácilmente en el proyecto. Ejemplo de archivo .env
:DATABASE_URL=postgres://user:password@localhost:5432/dbname
SECRET_KEY=mysecretkey
Uso en el programa:from dotenv import load_dotenv
import os
load_dotenv() # Cargar archivo .env
print(os.getenv('DATABASE_URL')) # Muestra la URL de la base de datos
Este método resulta útil para alternar configuraciones en desarrollo, pruebas o producción. Permite gestionar credenciales sin incluirlas en el código fuente.5. Eliminar y modificar variables de entorno
5.1 Eliminar variables de entorno
Para eliminar una variable se usadel
o os.environ.pop()
. del
la elimina por completo, mientras que pop()
devuelve el valor y la borra.import os
os.environ['TEST'] = 'testing'
del os.environ['TEST'] # Elimina la variable 'TEST'
Ejemplo con pop()
:import os
os.environ['TEST'] = 'testing'
print(os.environ.pop('TEST')) # Imprime 'testing' y elimina la variable
Tras eliminar, la variable deja de estar disponible. Es importante manejar el caso cuando no existe.6. Variables de entorno por proyecto
6.1 Gestión según el entorno
En diferentes fases (desarrollo, pruebas, producción) se requieren configuraciones distintas. Las variables de entorno permiten gestionarlas de forma eficiente. Ejemplo:import os
if os.getenv('PHASE') == 'development':
print('Modo desarrollo')
elif os.getenv('PHASE') == 'production':
print('Modo producción')
Así, la variable PHASE
define la configuración según el entorno.
7. Ejemplos prácticos: cambiar idioma o fase
7.1 Cambio de idioma
También sirven para cambiar idioma. Ejemplo usandoLANG
:import os
if os.getenv('LANG') == 'ja_JP.UTF-8':
print('こんにちは!')
else:
print('Hello!')
7.2 Cambio de fase según entorno
Se puede alternar procesos según la fase del proyecto:import os
phase = os.getenv('PHASE', 'development')
if phase == 'development':
print('Usando configuración de desarrollo')
elif phase == 'production':
print('Usando configuración de producción')
De esta forma, se optimiza la ejecución adaptándola al entorno.8. Conclusión
El uso de variables de entorno en Python es clave para mejorar la seguridad y flexibilidad de los proyectos. Permite separar configuraciones por entorno y manejar credenciales sin exponerlas en el código. Aprovecha el móduloos
y python-dotenv
para construir aplicaciones seguras y eficientes.