jueves, 12 de septiembre de 2019

Creación de entorno virtual para Python

ENTORNO VIRTUAL PARA PYTHON

Para éste artículo hemos de suponer que posee instalado Python3 en su sistema operativo, de no ser así recomendamos seguir el post de djangogirls. Bien, una vez instalado python tenemos la posibilidad de comenzar a desarrollar aplicaciones con él; y como este lenguaje de programación es lo máximo, es probable que te enganche y desees iniciar varios proyectos con él. Esto está muy bien y de hecho en Tratado Tecnológico te felicitamos si es así, sin embargo debes procurar separar todos tus proyectos con entornos virtuales para cada uno.
¿Por qué crear entornos virtuales? Pues imagina que estas trabajando en un Proyecto A en la que necesitas instalar paquetes o módulos especiales para desarrollar un característica en él; pues resulta que todos esos paquetes se instalan en el path principal de tu sistema operativo. ¿Esto es malo? realmente no. Pero supongamos que tu Proyecto A es funcionando perfectamente y un año después inicias otra app diferente la cual llamaremos Proyecto B, que casualmente usará un módulo ya instalado por A, mas este módulo tiene una actualización que B requiere; entonces resulta que lo actualizas y... oh no! El Proyecto A de hace una año deja de funcionar. ¿Por qué ocurrió esto? Es muy probable que la actualización del módulo no sea compatible con algunas funciones o métodos de la versión anterior, generando un problema.
Para evitar este tipo de inconveniente (que resultan ser un dolor de cabeza) se recomienda crear entorno virtuales para cada proyecto. Un entorno virtual es como una cápsula para cada app, en la que todo lo que se instala allí solo estará disponible para el proyecto en cuestión. Tomando el ejemplo anterior, si tenemos un entorno virtual para A y otro para B de forma independiente, la instalación de módulos en cada uno también lo será.

CREACIÓN DE ENTORNO VIRTUAL

Hay varias formas de crear un entorno virtual, seguramente en la web conseguirá varias maneras. La que usaremos acá hará uso de una herramienta llamada virtualenv. Para ello es necesario, como se comentó al inicio, tener instalado Python 3, y el módulo virtualenv. Para instalarlo solo debemos usar el gestor de paquete de python pip (pip ya viene por defecto con la instalación de python).

mi/directorio# pip install virtualenv

Con esto ya puedes crear un entorno virtual para cada proyecto de la siguiente forma:

mi/directorio# virtualenv env --python=python3

En la sintaxis de la instrucción tenemos varias cosa a considerar. Se ejecuta virtualenv para crear el entorno virtual y se dice que todo será gestionado por la carpeta env (la cual se creará después de la ejecución de esta instrucción). El nombre env se colocó como una notación general, pero usted puede darle el nombre que deseé, por ejemplo: myenv, venv, myentorno, etc., luego le indicamos cual versión de python deseamos usar, en cual, en este caso, es python3. Sino se coloca tomará como versión la que tengas por defecto.

Al pasar el tiempo es muy probable que deba actualizar la versión de python; por ejemplo, actualmente tengo instalado python2.7, python3.5, python3.7, entonces es muy ambiguo dejar en blanco la versión de python con la que se creará el entorno virtual. De hecho se puede ser más específico; note que en la instrucción anterior indiqué --python=python3, lo cual, en mi caso, puede ser 3.5 o 3.7, entonces para ser más específico le indico la versión de python3 a usar:

mi/directorio# virtualenv env --python=python3.7

Y listo. Eso creará una carpeta llamada env que permitirá gestionar todas las instalaciones de módulos para ese proyecto.

ACTIVACIÓN DEL ENTORNO VIRTUAL

Ya teniendo la carpeta del entorno virtual solo debemos activar el entorno virtual. Esto se hace justo en el mismo directorio donde se encuentra la carpeta env tecleando lo siguiente:

mi/directorio# source env/bin/activate

Esto hará que al inicio de la línea de comando aparezca el prefijo (env), tal como se muestra a continuación:
 
(env) mi/directorio# source env/bin/activate

Con lo cual nos indica que se encuentra activo el entorno virtual. Ya con esto podemos instalar todos los paquetes/módulos que necesita nuestro proyecto sin afectar las instalaciones de los otros, ya que estas instalaciones sólo tendrán efecto en este entorno virtual. Para desactivar el entorno virtual, solo debemos escribir:

(env) mi/directorio# deactivate

y volvemos a estado inicial.

Espero haya sido útil esta información y cómo recomendación, para cada proyecto sugerimos crear un entorno virtual independiente para evitar conflicto este todos tus app.

0 comentarios:

Publicar un comentario