• Saltar a la navegación principal
  • Saltar al contenido principal
Logo Codificando Bits

Codificando Bits

  • Academia
    • Rutas
    • Cursos
    • Proyectos
    • Tutoriales
  • Acceder
  • Suscribirse

¿Cómo crear entornos virtuales en Python con venv?

En este tutorial veremos qué es un entorno virtual de Python, por qué resulta útil y cómo crear entornos virtuales en Python usando el módulo «venv».

Comencemos entonces entendiendo el tipo de situaciones en las que el uso de un entorno virtual es ideal.

Dos proyectos que usan diferentes librerías

Supongamos que estamos desarrollando dos proyectos de Machine Learning: el proyecto A y el proyecto B, ambos implementados en Python versión 3.8.1.

Supongamos que el proyecto A lo desarrollamos ya hace un buen tiempo y que este hace uso de la versión 2.5 de la librería Keras.

Y digamos que en estos momentos estamos desarrollando el proyecto B el cual requiere una versión más actualizada de Keras, digamos la 3.6.

¿Qué hacemos? Pues instalamos Keras 3.6 en nuestra versión de Python y continuamos con el desarrollo del proyecto B.

Pero después de un tiempo nos damos cuenta de que debemos retomar el proyecto A, que hace tiempo teníamos olvidado, y cuando intentamos ejecutarlo encontramos un error: ¡el código del proyecto está intentando usar una función de Keras que no existe!

¿Qué ocurre? Pues lo que sucede en este caso es que durante el desarrollo del proyecto B decidimos instalar una versión más reciente de Keras que no es compatible con el código que tenemos para el proyecto A. Y, como tanto el proyecto A como el proyecto B hacen uso de las mismas librerías, de allí el error que nos arroja Python tras intentar ejecutar el proyecto A.

¿Cuál es la solución? Pues la respuesta está precisamente en los entornos virtuales.

¿Qué es un entorno virtual?

Un entorno virtual es básicamente una instalación de Python creada sobre la instalación original de Python.

Este entorno virtual es como un sub-directorio que contendrá las librerías y dependencias requeridas por nuestro proyecto y que está totalmente aislado de cualquier otro entorno virtual.

Por ejemplo, supongamos que nuestra instalación original de Python es la versión 3.8.1 y en ella tenemos instalada la versión 2.2 de la librería Keras:

- Instalación original: Python 3.8.1, Keras 2.2

Pues sobre esta instalación original podemos tener varios entornos virtuales totalmente aislados el uno del otro y también aislados de la instalación original y cada uno con diferentes librerías y cada una con diferentes versiones:

- Instalación original: Python 3.8.1, Keras 2.2
  - "entorno1": Python 3.8.1, Keras 3.1, sklearn 1.2
  - "entorno2": Python 3.8.1, Keras 2.5, pandas 2.0.0

Así que al hacer uso de entornos virtuales podemos en esencia tener diferentes instalaciones de dependencias todas montadas sobre la instalación de Python original. Pero lo más importante de todo: estos entornos virtuales están aislados el uno del otro y nunca entrarán en conflicto.

Así que, volviendo al caso de los proyecto A y B, vemos que para evitar estos conflictos en las versiones de las librerías usadas por cada proyecto lo ideal es precisamente crear un entorno virtual para cada proyecto.

Entonces, teniendo claro qué es un entorno virtual y por qué resulta útil, veamos cómo crear un entorno virtual haciendo uso del módulo «venv» de Python, que es uno de los métodos más sencillos para la creación de entornos virtuales.

¿Cómo crear entornos virtuales con el módulo venv de Python?

Desde luego, el primer paso para poder usar el módulo es tener Python instalado en nuestros computadores. En la lección 3 del curso Python Nivel Básico explico en detalle cómo instalar Python tanto en Mac como en Windows (es importante tener en cuenta que «venv» es un módulo que viene por defecto en la instalación de Python siempre y cuando la versión sea igual o posterior a la 3.3).

Con Python ya instalado podemos ahora sí crear y hacer uso del entorno virtual usando «venv». Veamos cómo hacerlo.

Contenido exclusivo para suscriptores

Si eres suscriptor accede en este enlace ó suscríbete a la Academia Online y accede a todo el contenido (lecciones en video, código fuente, sets de datos y descargas) de todos los cursos, proyectos y tutoriales.

¡Y listo, estos son los pasos que usualmente debemos llevar a cabo para crear y hacer uso de entornos virtuales en Python usando «venv»!

Conclusión

Bien, acabamos de ver qué es y por qué resulta útil hacer uso de entornos virtuales de Python al momento de desarrollar nuestros proyectos.

Realmente es algo que siempre deberíamos hacer cada vez que desarrollemos un proyecto de Ciencia de Datos, Inteligencia Artificial o Machine Learning, pues evitará posibles conflictos a futuro entre diferentes proyectos que hagan uso de diferentes librerías o dependencias.

En este tutorial hemos visto cómo usar «venv», un módulo que viene pre-instalado en las versiones más recientes de Python (posteriores a la 3.3) y que facilita la creación de estos entornos virtuales.

Sin embargo, este módulo tiene una desventaja y es que aunque nos permite crear diferentes entornos, cada uno con su propio conjunto de librerías, todos los entornos que creemos harán uso de la misma versión de Python instalada originalmente en nuestro sistema operativo.

Así que si queremos hacer uso de entornos virtuales pero a la vez nos interesa instalar diferentes versiones de Python en cada uno de ellos tendremos que usar otras herramientas como por ejemplo «pyenv» de la cual hablaré en un próximo tutorial.

Y recuerda que si eres suscriptor y tienes alguna duda sobre este tutorial me puedes contactar directamente a través del formulario que encontrarás en la Intranet.

© Codificando Bits, LLC | Blog | Contacto | Servicios | Acerca de | Políticas

¿Has olvidado la contraseña?
¿Has perdido tu contraseña? Por favor, introduce tu nombre de usuario o dirección de correo electrónico. Recibirás por correo electrónico un enlace para crear una nueva contraseña.
body::-webkit-scrollbar { width: 7px; } body::-webkit-scrollbar-track { border-radius: 10px; background: #f0f0f0; } body::-webkit-scrollbar-thumb { border-radius: 50px; background: #dfdbdb }