No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

¿Qué es un ambiente virtual?

9/20
Recursos

Aportes 25

Preguntas 5

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Hola Chicos! 😄
Instalar a nivel global puede causar distintos problemas al momento de manejar diferentes proyectos, por ejemplo para algunos proyectos necesitaras otro tipo de version, libreria o modulos y para solucionar esto se creo un ambiente virtual en python el cual encapsula cada proyecto y no lo deja de forma compartida.

Para los que apenas comienzan, esto puede parecer contra intuitivo, porque es logico pensar, bueno, pero que tanto puede cambiar, de una version a otra, igual todo se programa de la misma manera, son los mismos comandos, siempre utilizo la misma manera de programar, etc…
Pero si hay un gran problema, aunque no lo veamos a simple vista, pero la manera como configuramos un proyecto, puede ser muy diferente a como configuermos un segundo y asi sucesivamente, que sucede con esto, que las versiones de las librerias puedes ser diferentes, y si es cierto que no cambia la manera como programamos, si cambia la manera como estas pueden estar distribuidas en el codigo, y causas posteriores problemas.
Y segundo, que apesar que sea un poco mas demorado hacer todo el proceso de crear entornos virtuales, si es mejor y mucho mas ordenado, para que sepamos exactamente como esta ubicado todo en nuestro computador, y posteriormente en Github o Gitlab.

Les dejo un resumen de qué son los entornos / ambientes virtuales y cuáles son los beneficios cuando lo comparamos con instalaciones de forma local 🌐vs🖥️ _

Los entornos virtuales son una forma de crear un sistema operativo virtual dentro de otro sistema operativo. Esto permite a un usuario tener varios sistemas operativos diferentes en un mismo equipo físico, lo que puede ser muy útil en situaciones en las que es necesario utilizar diferentes aplicaciones o tecnologías que requieren entornos diferentes

  • Permiten utilizar varios sistemas operativos en un mismo equipo físico
  • Permiten instalar y utilizar diferentes aplicaciones y tecnologías de manera segura, sin tener que hacer cambios permanentes en el sistema operativo principal
  • Pueden ser fácilmente movidos o copiados, lo que significa que pueden ser utilizados en diferentes equipos o compartidos con otros usuarios
  • También pueden ser fácilmente respaldados y restaurados en caso de que se produzca un problema, lo que puede ayudar a prevenir la pérdida de datos o el tiempo de inactividad
  • Ofrecen una forma conveniente y segura de utilizar diferentes aplicaciones y tecnologías en un mismo equipo


En resumen, los entornos virtuales ofrecen una forma conveniente y segura 🔒 de utilizar diferentes aplicaciones y tecnologías en un mismo equipo, lo que puede ser muy útil para muchos usuarios y situaciones diferentes

recomiendo ver el curso de entorno de trabajo con ambientes virtuales usando conda, y así podrán conocer un poco mas la idea.
https://platzi.com/cursos/jupyter-notebook/

Venv y minecraft (analogía)

Una forma en la que entendí los ambientes virtuales fue viéndolo como un Launcher de minecraft. Si viste bien minecraft.

Analogía

Imagina que quieres jugar minecraft en una versión específica porque en esa versión hay algo que quieres probar, esta versión esta aislada del resto de versiones, en un Launcher tienes todas las versiones disponibles y debes escoger una que quieras jugar…


Esto es muy parecido a un entorno virtual (venv => virtual enviroment) ya que este es un espacio aislado con sus propias dependencias, con diferentes versiones de paquetes.

Porqué tener diferentes versiones de paquetes?

  • Siguiendo con la analogía en minecraft diferentes versiones tienen diferentes cosas que agregan o quitan, puede que quieras conectarte a un server pero en el server solo usan la version 1.8.8 o quieres instalar mods…

  • Para un ambiente virtual los paquetes que se instalan tienen diferentes características, puede que quieras algo de una versión específica, o puede que tu código solo funcione en esa versión.

Las analogías no son siempre acertadas, es una relación semejante entre algo distinto, si has jugado minecraft seguramente le encuentras más sentido 😄

Si instalaste TLauncher, desinstalalo!!, ese Launcher viene con un spyware…

  1. ¿Qué es un entorno virtual en Python?

    Un entorno virtual (o ambiente virtual) en el contexto de Python es una herramienta que te permite crear un espacio aislado en tu sistema donde puedes instalar paquetes y dependencias de Python sin afectar el entorno global de Python en tu máquina.

  2. Beneficios de los entornos virtuales:

    • Aislamiento: Cada entorno virtual es independiente y aísla las bibliotecas y paquetes que instalas en él.
    • Gestión de dependencias: Facilita la especificación de dependencias necesarias para tu proyecto en un archivo requirements.txt.
    • Evitar conflictos: Previene que las bibliotecas de un proyecto afecten a otros proyectos o al entorno global de Python.
    • Limpieza y organización: Permite una gestión ordenada y eliminación de entornos virtuales no utilizados.

Lo genial de PyCharm es que te crea por defecto cada proyecto con su propio ambiente virtual 😄

Para instalar una version diferente de una libreria usamos el codigo pip3 install <libreria>==<version>

Para todos los que crean que esto no es tan importante

De verdad, usen entornos virtuales en cada proyecto que hagan, su YO del futuro se los va a agradecer.

Yo usé por años Python a como diosito me daba a entender y ahora que estoy tomando estos cursos es cuando me doy cuenta de todos las malas prácticas que tenía y esto en particular les va a ahorrar muchos problemas después

Si alguno estava usando git bash, para activar el entorno virtual desde windows:

https://docs.python.org/es/3/tutorial/venv.html

como crear un ambiente virtual ​

  • PAGvenvWhat
python3 -m venv nombre_del_ambiente

  • Estnombre_del_ambienteque contactivateQue sebindel ambiente virtual. en ventanas,
nombre_del_ambiente\Scripts\activate.bat

source nombre_del_ambiente/bin/activate

\### Pasos para realizar un ambiente virtual 1\. Primer punto, verificar dónde se está ejecutando python mediante el comando `which python3`. Verificar también `which pip3` 2\. Si te encuentras en linux o wsl, realizar el siguiente comando en la terminal: ```shell sudo apt install \[-y] python3-venv ``` Esto instalará la opción para realizar entornos virtuales 3\. Luego, en cada carpeta, en cada proyecto, podemos crear el entorno virtual mediante el siguiente comando: ```shell python3 -m venv \[nombre del entorno virtual] ``` El nombre puede ser el que quieras. Normalmente se lo coloca \*env\*. 4\. Una vez ejecutado el comando nos aparecerá una carpeta el nuestro proyecto con el nombre elegido. Ahora debemos activarlo: ```shell source \[nombre del entorno virtual]/bin/activate ``` 5\. En alguna parte de la terminal nos saldrá un indicativo de que nos encontramos en el entorno virtual ingresado 6\. Podemos verificar dónde se está ejecutando python y pip3. Nos saldrá que se ejecuta desde nuestros ambientes virtuales 7\. Podemos instalar los módulos que necesitamos para nuestro proyecto. \*Observación: las librerías instaladas globalmente no aparecerán disponibles\* ```shell pip3 install \[modulo o modulo==x.x.x] ``` 8\. Para verificar los módulos instalados ```shell pip3 list o pip3 freeze ``` 9\. Para salir del entorno virtual ``` deactivate ```

La realidad es que todo el manejo de dependencias se puede salir de las manos si no se usa un ambiente virtual.

Inclusive yo recomendaría usar la versión de python más actual en cada proyecto, porque la realidad es que cuando python o la versión en cuestión que se usa para desarrollar queda sin soporte, toca hacer revisión y refactoring del código.

Para poder instalar la última versión de una liberaría se usa el comando pip3 install -u, para los que quieran tener la última versión de matplotlib: ```txt pip3 install -u matplotlib ```
curiosamente hace 2 clases no me dejo instalar matplotlib y me toco crear un ambiente virtual para hacerlo hat, no esperaba que lo explicaran clases adelante
# How to Set Up a Virtual Environment in Python – And Why It's Useful --- Este es un articulo genial espero les sea de agrado y aprendizaje complementario. [**https://www.freecodecamp.org/news/how-to-setup-virtual-environments-in-python/**](https://www.freecodecamp.org/news/how-to-setup-virtual-environments-in-python/)
Hola, no pude solucionar el problema de la instalación de otra versión del mismo paquete
Holas, a alguno le aparece esto? ![](https://static.platzi.com/media/user_upload/image-c849a282-c04c-4745-93f4-2836a8285787.jpg)

Chat.responde:
El uso de Ambientes Virtuales en Python, como el módulo venv o herramientas externas como virtualenv y conda, resuelve varios problemas comunes en el desarrollo de software al proporcionar un entorno aislado para cada proyecto. Aquí algunos problemas que resuelve:

 
Conflictos de Dependencias:

  • Problema: Diferentes proyectos pueden depender de versiones específicas de bibliotecas o paquetes. Si se instalan globalmente, puede haber conflictos entre las versiones.
  • Solución: Los ambientes virtuales permiten que cada proyecto tenga sus propias dependencias sin afectar el sistema global, evitando así conflictos de versiones.

 
Reproducibilidad del Entorno:

  • Problema: Es difícil garantizar que diferentes desarrolladores o máquinas tengan exactamente el mismo conjunto de dependencias instaladas.
  • Solución: Con ambientes virtuales, es posible especificar y compartir fácilmente el conjunto exacto de dependencias necesarias para reproducir el entorno de desarrollo.

 
Aislamiento de Proyectos:

  • Problema: Sin ambientes virtuales, las dependencias de un proyecto pueden afectar a otros proyectos en la misma máquina.
  • Solución: Los ambientes virtuales proporcionan aislamiento, lo que significa que cada proyecto puede tener su propio espacio de trabajo independiente de otros proyectos y del sistema global.

 
Gestión de Versiones de Python:

  • Problema: Diferentes proyectos pueden requerir versiones específicas de Python.
  • Solución: Los ambientes virtuales permiten especificar la versión de Python deseada para cada proyecto, lo que facilita el manejo de múltiples versiones en la misma máquina.

 
Evitar Instalaciones Globales:

  • Problema: Instalar paquetes globalmente puede ser arriesgado y podría requerir permisos de administrador.
  • Solución: Los ambientes virtuales permiten a los desarrolladores instalar paquetes en su propio espacio sin necesidad de permisos de administrador y sin afectar al sistema global.

 
Desarrollo Colaborativo:

  • Problema: Colaborar en un proyecto con otros desarrolladores puede ser complicado si todos usan el mismo entorno global.
  • Solución: Los ambientes virtuales facilitan el desarrollo colaborativo al proporcionar un entorno consistente y aislado para todos los miembros del equipo.

 
En resumen, el uso de ambientes virtuales en Python resuelve problemas relacionados con dependencias, reproducibilidad, aislamiento de proyectos y gestión de versiones, haciendo que el desarrollo de software sea más manejable y menos propenso a conflictos.

Según el profe David Aristegui en el curso de python de algoritmos, dice que no hay ingeniero que no use ambientes virtuales, que si o si vamos a tener que trabajar así en el mundo laboral.

Me gusta que explique el problema para dar solución, que buena profe 🐧🐍

9. ¿Qué es un ambiente virtual?

  • Un ambiente virtual encapsula cada uno de los módulos, los ata a cada proyecto. No los deja en una zona compartida.
  • Cada proyecto puede tener sus propias versiones de paquetes.

yo la primera vez que vi el tema de ambientes virtuales (fue en un curso afuera de platzi) no le entendía mucho el sentido, hasta que me toco trabajar en una máquina que tenía la versión 3.11 de python y esta no funcionaba con keras =/

Como dicen en los comentarios, uno de los temas que parecen sin razón, pero con muchos beneficios cuando se empieza a aplicar a diferentes proyectos,