En el desarrollo de software, un "entorno" se refiere a la configuración bajo la cual se ejecutan aplicaciones o software específicos; esta configuración incluye:
python 3.10
Gestionar adecuadamente los entornos es crucial cuando se trabaja en múltiples proyectos o se colabora con un equipo, ya que asegura la consistencia y previsibilidad en el comportamiento del software a través de diferentes máquinas y configuraciones.
☝️ Este artículo no trata sobre máquinas virtuales o contenedores Docker; nos enfocamos en la creación de entornos que generalmente ocurre dentro de la computadora personal del desarrollador, la máquina virtual o el contenedor Docker.
Como desarrollador de software, puede que necesites usar Python 3.10 en un proyecto y Python 3.11 en otro.
Para resolver este problema, recomendamos la instalación de gestores de versiones en lugar de instalar los lenguajes de programación directamente, por ejemplo:
Las variables de entorno son pares clave-valor almacenados en una computadora que se pueden usar para configurar y afectar el comportamiento de los procesos en ejecución en ese sistema. Juegan un papel crítico en la gestión de configuraciones de aplicaciones que no deben estar codificadas en el código fuente, como claves API, conexiones a bases de datos y otros datos sensibles.
Dependiendo del lenguaje de programación elegido, usarás diferentes herramientas para crear entornos como venv, rbenv, etc. Vamos a explorar las herramientas de entorno más recomendadas para los lenguajes de programación más populares.
pyenv: Esta herramienta permite a los desarrolladores gestionar múltiples versiones de Python en una sola máquina, habilitando el cambio entre versiones según los requisitos del proyecto. Es particularmente útil cuando los proyectos requieren versiones específicas de Python que no son globales.
pyenv install 3.8.6
) y establecer una versión local para un proyecto (pyenv local 3.8.6
).pipenv: Esta herramienta crea y gestiona automáticamente un entorno virtual para tus proyectos, además de añadir/eliminar paquetes de tu Pipfile
a medida que instalas/desinstalas paquetes. También genera el Pipfile.lock
, que se utiliza para producir builds deterministas.
nvm (Node Version Manager): Similar a pyenv pero para Node.js, nvm permite a los desarrolladores instalar y cambiar entre versiones de node. Es esencial para proyectos que dependen de una versión específica de Node.js o cuando necesitas probar la aplicación en diferentes versiones.
nodeenv: Es útil para asegurar que las dependencias se mantengan separadas entre proyectos.
.env
para mantener las variables de entorno consistentes en las etapas de desarrollo y producción, pero asegúrate de que estos archivos nunca se registren en el control de versiones con información sensible.Entender y utilizar las variables de entorno y las herramientas de gestión de entornos como pyenv
, pipenv
, nvm
y nodeenv
son habilidades esenciales para los desarrolladores modernos. Mejoran la seguridad, permiten un desarrollo flexible en diferentes entornos y facilitan una colaboración más fluida entre equipos.