img virtual environment colors

(Imagen: pexels.com/photo/green-orange-yellow-and-blue-pencil-159518 )

Sumario contenido:

Que es un entorno virtual

Un entorno virtual es una herramienta que permite crear entornos de desarrollo aislados en Python. En criollo, una "caja separada" del sistema operativo donde se puede trabajar sin temor a estropear algo. Los entornos virtuales son muy útiles para el desarrollo ya que permite llevar el control de las dependencias de cada proyecto por separado, y llevarlos a producción o replicarlos en otro entorno con total fidelidad.

En que desarrollos se pueden usar

Se pueden utilizar en cualquier proyecto enfocado en el lenguaje de programación Python, como pueden ser los basados en el framework Django en el microframework Flask o el generador de sitios estáticos Pelican entre muchos otros.

¿Siempre se debe trabajar dentro de un entorno virtual?

No necesariamente, pero es sumamente recomendable usarlo, ya que facilita manejar distintas versiones de un mismo programa, framework o librería, sin temor de que unos interfieran con otros.

¿Se puede usar el mismo entorno virtual para varios proyectos?

Cada proyecto en el que trabajes debe tener su propio entorno virtual, y es importante tener claro que los entornos virtuales pueden residir en cualquier parte del sistema y no precisamente estar en la misma carpeta del proyecto. Esto parece confuso pero si lo piensas es una buena estrategia para su uso, de esta manera al utilizar Git solo estarías aplicando el control de versiones al código que desarrollaste y no a las dependencias que instalaste. Ademas, de esta forma, se puede duplicar un entorno para un nuevo proyecto pero con toda la base lista ahorrando algo de tiempo y trabajo. Es muy recomendable utilizar un nombre similar en el proyecto y en el entorno virtual para de esta forma identificar rápidamente cual proyecto corresponde con cual ambiente virtual.

Los distintos entornos virtuales para Python

Estos son una herramienta muy útil y por lo tanto populares, eso a dado lugar a distintas variantes de mismo, a continuación algunos de los más conocidas.

  • virtualenv: Es la herramienta base para la creación de entornos Python aislados. Funciona de la siguiente forma, creamos una carpeta que contendrá todos nuestros entornos virtuales, con el comando correspondiente creamos nuestro entorno virtual, ahora algo muy importante, fundamental, antes de instalar nada en el entorno virtual debe activarse. Una vez iniciado, todo lo que instalemos utilizando pip sera colocado en nuestro entorno virtual. Lo primero que se debe colocar es una copia del binario python3. Virtualenv no es parte de la biblioteca estándar de Python, pero es bendecida oficialmente por PyPA (Python Packaging Authority) aunque esta en proceso de ser reemplazado por pipenv. Es una buena opción para quien empieza, ya que permite comprender como funcionan estos, aquí un enlace a un tutorial sobre su uso

  • virtualenvwrapper: Es un set de extensiones para virtualenv. Le proporciona comandos adicionales para manejar los entornos, especialmente, la posibilidad de trabajar con varios directorios virtuales al mismo tiempo. A diferencia de virtualenv, este de forma automática pone todos los entornos virtuales creados dentro de una carpeta oculta .virtualenvs. Estos se pueden listar, activar y borrar mediante comandos desde cualquier lugar del sistema, mientras que en el original hay que ir a la carpeta del entorno para administrarlo.

  • pip: Antes de continuar es conveniente aclarar que es pip, este es el sistema de gestión de paquetes utilizado para instalar y administrar los paquetes escritos en Python, los cuales pueden ser encontrados en el Python Package Index (PyPI). Siempre que se utilicen entornos virtuales de Python se debe utilizarse pip para instalar los paquete y no apt o yum ya que estos colocaran el paquete disponible para todo el sistema, por fuera del entorno virtual.

  • pipenv: Es ahora la herramienta oficial recomendada para el empaquetado por PyPA. Su objetivo es combinar Pipfile, pip y virtualenv en un único comando de la línea ya que estos se utilizan en conjunto con mucha frecuencia.

  • pyenv: Es una herramienta maravillosa para administrar múltiples versiones de Python. Por ejemplo, es posible que desees probar tu código con Python 2.7, 3.5 y 3.7, por lo que necesitaras una forma de cambiar entre ellos. Pyenv también facilita el proceso de descarga e instalación de múltiples versiones de Python, utilizando el comando pyenv install. Existe un puglin que permite usar pyenv y virtualenv al mismo tiempo lo cual es muy conveniente, pyenv-virtualenv. Como puedes imaginar este ultima herramienta se usa para casos muy especiales donde estés desarrollando algo que sera compartido con la comunidad.

Según el material bibliográfico que consultes hay quienes usan uno u otro. Incluso puedes utilizar una maquina virtual y vagrant pero esto es harina de otro costal.

Bien, espero que esto aclarara un poco la confusión sobre los entornos virtuales, en otro post daré un ejemplo de como usar alguno de ellos.

Written by @EspiFreelancer with StackEdit.


Published

Category

Web developer

Tags

Contact