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 16

Preguntas 5

Ordenar por:

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

o inicia sesión.

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.

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/

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

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…

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

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.

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

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,