¿Qué es un entorno virtual?

4/21
Recursos

Aportes 91

Preguntas 21

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Aprendí sobre los entornos virtuales gracias al Curso de Creación Lenguajes de Programación: Intérpretes, la idea es sencilla, de hecho el concepto es similar al de los contenedores de Docker, como profesional empezarás a requerir de trabajar diversos proyectos que trabajen con diferentes versiones, ya sea del lenguaje o de algún módulo.
.
Sería una catástrofe tener que instalar y actualizar módulos para cada proyecto cuidando que ninguno se rompa, porque fácilmente podrías actualizar un módulo que, para un proyecto funcione, pero para otro deje de funcionar, es por eso que se crea el concepto de entornos virtuales.
.
Este concepto lo tienen muchos lenguajes, y lo genial es que soluciona muy bien el problema de la compatibilidad entre proyectos, porque cada entorno virtual es independiente y funciona con las versiones que se les hayan instalado ahí mismo 😄.

Resumiendo lo que dice la documentación de Python sobre Entornos Virtuales
.
Un entorno virtual es un directorio que contiene una instalación de Python de una versión en particular, además de unos cuantos paquetes adicionales.
.
Ejemplo:
La aplicación A puede tener su propio entorno virtual con la versión 1.0 instalada mientras que la aplicación B tiene otro entorno virtual con la versión 2.0. Si la aplicación B requiere que actualizar la librería a la versión 3.0, ésto no afectará el entorno virtual de la aplicación A.
.
https://docs.python.org/es/3/tutorial/venv.html

Resumen
|
Los entornos virtuales son de mucha utilidad ya que nos ayudan a tener versiones especificas de librerías o módulos a un proyecto sin afectar a otros. De esta forma en el mismo equipo pueden coexistir distintos proyectos con distintas versiones de la misma librería o modulo.
|
Sin usar entorno virtual

con entornos virtuales

Para los curiosos, el inconveniente que resuelven los ambientes virtuales se presenta porque Python guarda todos los paquetes de terceros en un solo directorio. Lo problemático aquí de Python es que guarda estos paquetes solo por nombre, y no por nombre y versión. Esto hace que si dos proyectos diferentes instalan, o requieren un mismo paquete pero con una versión diferente, entonces Python los almacenará en el mismo directorio por su nombre y cuando intente obtener uno o el otro, no podrá diferenciarlos.

Un paso más para crear proyectos maravillosos 👑

.
Los entornos virtuales tan simples y a veces, tanto dolor de cabeza que dan, ayudan mucho a aislar el entorno donde desarrollamos nuestros proyectos. También pueden utilizar Pyenv para manejar los ambientes virtuales y versiones de Python.

Esta clase es importante!!! No pases de los ambientes virtuales!!!
Te cuento mi experiencia:
De nuevo cuando estaba en pañales hace varios años preferí ignorar este tema de entornos virtuales; me parecía que no era necesario si todos mis proyectos los haría con las mismas librerías que tuviera que aprender a hacer ambientes virtuales y hacer esos pasos extras.

Pero oh boy cuando empecé a colaborar con otras personas, por no hacer entornos virtuales rompí mi sistema operativo completo, grave en plan sólo tenía acceso a la terminal de emergencia de Ubuntu. Resulta ser que el python que Ubuntu trae por defecto lo utiliza (o utilizaba) el SO para algunas cosas importantes y al meterme con los paquetes que estaban instalados de manera global pues rompí alguna dependencia y dejó de funcionar correctamente.

Hints y Anotacion de funciones

Se tiene la creencia que en Python no se debe especificar el tipo de dato del argumento de una funcion al momento de pasarlo. Sin embargo, existe la opcion de especificarlo.

https://www.python.org/dev/peps/pep-0008/#other-recommendations

Ejemplo

Sin anotacion de funciones

def sum(a, b):
return a + b

Con anotacion de funciones

def sum(a: int, b: int) -> int:
	return a + b

Un entorno virtual funciona como un Python separado para cada proyecto, dónde tiene los módulos que este necesita y nostros podemos gestionar si traer otro, o si actualizarlos para que bajo este entorno, el código siempre funcione.
PD: Un módulo es código escrito por otra persona para resolver más rápido un problema que estamos abarcando nosotros. Es decir no volvemos a crear la misma solución que ya existe, sino que la usamos.

✨ Un entorno virtual nos permite tener un Python separado para cada proyecto.

Entorno virtual:

Varios proyectos en el PC funcionan en Python la cual tiene varios módulos.

Modulo: es código escrito por otro desarrollador para resolver un problema, el cual podemos utilizar sin tener que crear el código. Ej. modulo Random.–

¿Que pasa cuando se actualiza un modulo?
En palabras simples puede dejar de funcionar un proyecto

¿Como se resuelve?
Creando un entorno virtual, que es tener una versión de Python actualizada para unos proyectos y otra versión aislada para otros.

Entorno de desarrollo virtual o env: Un entorno de desarrollo virtual python o simplemente entorno virtual python es un mecanismo que me permite gestionar programas y paquetes python sin tener permisos de administración, es decir, cualquier usuario sin privilegios puede tener uno o más “espacios aislados”. Donde poder instalar distintas versiones de programas y paquetes python. Para crear los entornos virtuales vamos a usar el programa virtualenv o el módulo venv y para instalar paquetes python vamos a usar el programa pip.
.
.
Pypi(Python package index): Es un repositoro de paquetes de terceros que se pueden utilizar para proyectos en python, estos paquetes generalmente traen codigo que podemos utilizar para proyectos desde funciones clases y metodos que nos haran la vida mas facil al momento de desarrollar proyectos.

Entorno Virtual

  • Son una manera de tener distintas versiones de python y sus respectivos paquetes (modulos).
  • En otras palabras creamos una carpeta en la que almacenamos la versión de python con las versiones de los módulos con los que trabajamos nuestro proyecto.
  • Esto es importante puesto que una actualización de un módulo puede romper nuestro programa (instrucciones que ya no existen o cambiaron de nombre)

El entorno por lo tanto representa un Python separado para un solo proyecto que tiene sus propios módulos.

conda env list
#Crear el ambiente virtual y los paquetes que se instalen
conda create --name py35 python=3.5 pandas
conda activate py35
conda list
conda list pandas
conda update pandas
# Intentar actualizar pandas, no se puede pq python 3.5 no lo soporta
conda install pandas=1.2
#actualizar python y  pandas
conda install python=3.9 pandas=1.2
#clonar ambientes
conda create --name py39 --copy --clone py35
#Ir al nuevo ambiente con python 3.9
conda activate py39

conda deactivate
conda deactivate

<h3>Notas:</h3>
<pre><code>$ conda create --name <span class=“hljs-comment”>[nombre]</span> <span class=“hljs-comment”>[paquete]</span>=<span class=“hljs-comment”>[versión]</span>
</code></pre>
<p>Si no hay se especifíca una versión, se instalará la última disponible.</p>
<p>Para ver los paquetes(si no se especifican los paquetes, dará una lista de los ambientes virtuales):</p>
<pre><code><span class=“hljs-variable”>$ </span>conda list [paquete]
</code></pre>
<p>Para activar y desactivar los ambientes:<br>
<code>$ conda activate [nombre del ambiente]</code> y <code>$ conda deactivate</code><br>
Para actualizar paquetes:</p>
<pre><code><span class=“hljs-variable”>$ </span>conda update [paquete]
</code></pre>
<p>Para instalar un paquete específico:</p>
<pre><code>$ conda install <span class=“hljs-comment”>[paquete]</span>=<span class=“hljs-comment”>[versión]</span>
</code></pre>
<p>Para clonar un ambiente:</p>
<pre><code><span class=“hljs-comment”>$</span> <span class=“hljs-comment”>conda</span> --<span class=“hljs-comment”>name</span> <span class=“hljs-title”>[</span><span class=“hljs-comment”>nuevo</span> <span class=“hljs-comment”>ambiente</span><span class=“hljs-title”>]</span> --<span class=“hljs-comment”>copy</span> --<span class=“hljs-comment”>clone</span> <span class=“hljs-title”>[</span><span class=“hljs-comment”>ambiente</span><span class=“hljs-title”>]</span>
</code></pre>

Dentro de nuestro lenguaje de programación (Python) tenemos varios proyectos en ese lenguaje, por lo que la estrategia más adecuada de manejarlos, es replicando la instalación de Python para cada Proyecto, pero esta réplica del lenguaje, funciona como un contenedor, que te permite hacer todo lo que quieras, sin afectar los proyectos de al lado ¡O incluso el Python o tu compu!

🚨🚨🚨
En resumen el entorno virtual permite aislar las dependencias de los proyectos en Python

Wow, ahora Python310 permite usar paréntesis.
Ahora se admite el uso de paréntesis para la continuación en varias líneas en los administradores de contexto.
Me parece que a veces si se necesitan, pero hablando de la sintaxis de python daña un poco lo lindo de la sintaxis del lenguaje.
Volvemos a Java y esos lenguajes antiguos jaja

Es muy útil ya que tu puedes darle soporte a proyectos con versiones anteriores y el entorno virtual te permite aislar ese proyecto para que tu lo puedas trabajar sin afectar a otros proyectos que tengas con otras versiones del lenguaje/framework.

Un entorno de desarrollo virtual python o simplemente entorno virtual python es un mecanismo que me permite gestionar programas y paquetes python sin tener permisos de administración, es decir, cualquier usuario sin privilegios puede tener uno o más “espacios aislados” (ya veremos más adelante que los entornos

Imagen #1: Varios proyectos con un único entorno virtual y a su vez con varios módulos
Imagen#2 : El proyecto numero 4 falla cuando se actualiza el modulo 2 puesto que no tiene un entorno virtual independiente para este mismo
Imagen#3 : Entornos virtuales independendientes para cada proyecto con sus respectivos módulos
Imagen#4 : Los proyectos del 1 al 3 con el modulo 2 actualizado a su v2 y el modulo 4 continua con su v1 del modulo 2 lo que hace que este no falle, todo esto se da gracias a que cada proyecto tiene un entorno virtual diferente y esto hace que se pueda elegir en que entorno virtual de actualiza algún modulo o no

En un entorno virtual uno puede en cada proyecto importar distintos tipode de modulos, en uno importas random y pandas, en otro importas mathpy y requests.

Módulo -> Código escrito por otra persona que podemos usar nostros para resolver un problema de manera rápida. Por ejemplo, el módulo de números aleatorios.

En un entorno virtual tendremos diferentes proyectos, cada uno con una versión específica de Python y solamente funcionará para ese proyecto en particular.

Este fue mi resumen de la clase, me confirman si está bien?

Qué es un entorno virtual?.

  • Qué es un modulo: Es código desarrollado por personas experimentadas, que podemos utilizar…

Python aislado para cada uno de los proyectos que realicemos. Tiene sus propios módulos y que en el caso de que necesitemos actualizar algún modulo lo podemos hacer de manera individual, sin afectar los demás proyectos, pues estamos trabajando con un entorno virtual (python) en cada uno de ellos.

estoy pensado o deduciendo asi como lo esplicaron que en cada proyecto existe un python, de tal forma que el proyecto que de adecua a una nueva versión de Python, hara un control de versiones entre los modulos existentes en otros proyectos. Si esa es la idea me parece que la entendi…??

un entorno virtual es como tener python separado por proyecto con sus respectivos modulos (llamar otro codigo que está realizado) de esta manera cuando uno quiera actualizar algunos de los modulos solo lo actualizamos en el proyecto que se necesita, porque pueda que al momento de actualizarlo dañe alguno de los proyectos, el gran poder de un entorno virtual.

En mi experiencia he tenido que participar en proyectos que ocupan un mismo paquete pero que por “extrañas” razones uno lleva respecto al otro 3 o 4 versiones de diferencia que han tenido cambios mayores y el proyecto es lo suficientemente grande o falto de prioridad de actualización mayor que no se harán cambios para llevarlo a la versión más reciente ¿Cuál proyecto debería tener preferencia? ¿Y qué sucederá cuando quiera volver a desarrollar en el que tiene la versión anterior? La respuesta ¡Usar entornos virtuales!

Las pautas planteadas en la documentación de Py desde lsus PEPS 8; posee convenciones de codificación muy al detalle, considerar el máximo de caracteres por línea de código (79 caracteres) y por línea de comentario (72 caracteres), es una muestra de lo meticuloso que se presenta Python para la estética.

Notas 😄
¿Qué es un entorno virtual?

  • Un módulo es código escrito por otra persona que a nosotros nos sirve para resolver un problema de manera rápida (no reinventar la rueda 😆).
  • En principio, cada proyecto funciona dentro de nuestra instalación de Python, el cual tiene varios módulos. Cuando actualizamos un módulo para un proyecto, puede haber problemas con el resto de los proyectos 😵.
  • Para resolver esto, usamos entornos virtuales, donde tenemos una copia de Python (aislada) en cada proyecto, con módulos independientes en cada entorno 😄.

Un módulo es código escrito por otra persona para resolver más rápido un problema que estamos abarcando nosotros. Es decir no volvemos a crear la misma solución que ya existe, sino que la usamos.

Para activar el entorno virtual en git bash el comando es el siguiente:

. venv/Scripts/activate

se debe dejar un espacio luego del ‘.’

  • Un entorno virtual en python es un espacio aislado que contiene una versión particular de módulos y librerías.

¿Qué es un entorno virtual?

Recordemos el concepto de modulo. Un modulo es codigo escrito por otra persona para poder resolver un problema de forma rápida. Aprovechamos el trabajo de alguien mas que ya ha realizado para poder utilizarlo en nuestro trabajo. Para no reinventar la rueda, incorporamos los módulos para trabajar de forma mas rapida y eficiente.

Entorno Virtual: Es ese Python que está aislado y que tiene sus propios módulos para poder funcionar tranquilamente sin que le afecte las actualizaciones de los otros.

Imagina que tienes tu computadora. En tu computadora corre tu programa Python y tienes guardados varios proyectos que ya haz desarrolla anteriormente.

Dentro de los proyectos haz usado modulos para poder facilitar tu trabajo. Asi con unamos el modulo Random( ) para poder crear los números aleatorios.

Cuando se actualiza los módulos ocurren los problemas. Porque los proyectos pueden tener líneas de código con referencia a los módulos. Si un modulo se actualiza y una línea de código se elimina de dicho modulo, esto afectara al Proyecto y tendrá un error.

Para resolver esto creamos un entorno donde tendremos un Python para cada proyecto. Gracias a esto podemos elegir que módulos podemos actualizar y cuales no para de esta manera no tengamos problemas con la ejecución de nuestro proyecto.

MÓDULO: Código escrito por otras personas que nos sirve para hacer nuestros proyectos más rápidamente. Algunos módulos que usamos habitualmente son el Random, Math, String, entre muchos otros.

Un ENTORNO VIRTUAL nos permite tener una versión de Python independiente para cada uno de los proyectos al igual que módulos independientes. Esto permite que en caso de necesitar actualizar alguno de los módulos en algún proyecto, esto no afecte a los demás.

Módulo es código escrito por otro desarrollador y que podemos usar para resolver nuestro código.

De acuerdo a lo que entendí, podría decir que un entorno virtual es un contenedor en el que tenemos un proyecto y una versión de Python u otro lenguaje de programación independiente para el mismo, lo que nos permite trabajar en él sin afectar otros proyectos y además evitamos problemas de compatibilidad entre nuestro proyecto y los módulos usados.

Pr eso es clave haber visto el curso de Conda, ahí se explica de principio a fin la necesidad de los entornos y como controlarlos.

Entiendo que un entorno virtual se usa para que los programas de forma independiente puedan funcionar con diferentes versiones del programa

Había escuchado que trabajaban contenedores con diferentes versiones y por fin entendí

El entorno virtual es muy importante a la hora de trabajar en equipo !

Una explicación muy buena del porqué utilizar entornos virtuales 😃

Genial!

algo sobre la documentación: ¿Debe romperse una línea antes o después de un operador binario?
Durante décadas, el estilo recomendado fue romper después de los operadores binarios. Pero esto puede dañar la legibilidad de dos maneras: los operadores tienden a dispersarse en diferentes columnas en la pantalla, y cada operador se aleja de su operando y pasa a la línea anterior. Aquí, el ojo tiene que hacer un trabajo extra para saber qué elementos se suman y cuáles se restan

Se pasó el profe. Explica de manera muy lúdica, clara y con buen tono de voz

excelente clase

Entorno virtual: Un entorno virtual es una versión especifica de python y de los paquetes que utiliza el proyecto para asegurar que el correcto funcionamiento del programa.

Según el glosario contenido en la documentación de Python, se define el entorno virtual, como el entorno cooperativamente aislado de ejecución que permite a los usuarios de Python y a las aplicaciones instalar y actualizar paquetes de distribución de Python sin interferir con el comportamiento de otras aplicaciones de Python en el mismo sistema.

Un entorno virtual de aprendizaje es un espacio educativo alojado en la web, un conjunto de herramientas informáticas que posibilitan la interacción didáctica de manera que el alumno pueda llevar a cabo las labores propias de la docencia como son conversar, leer documentos, realizar ejercicios, formular preguntas al docente, trabajar en equipo… etc. Todo ello de forma simulada sin que medie una interacción física entre docentes y alumnos.

Cuando hablamos de Entorno Virtual de Aprendizaje (EVA) o en ingles Virtual learning environment (VLE), también conocido por las siglas LMS (Learning Management System), a todos se nos viene a la cabeza Moodle, el más conocido y extendido EVA del mercado. El más extendido entre otras cosas porque se trata de un programa de código abierto, es decir de licencias gratuita. Nacido a la vera de las universidades, cuna del software libre.

Conviene no confundir entorno virtual de aprendizaje con ERP educativo, que ya explicábamos en otro post . El primero tiene que ver con el proceso de enseñanza, el segundo con la gestión más bien administrativa de organizaciones docentes.

La primera y más extendida funcionalidad de un entorno virtual de aprendizaje es la de ser un repositorio de documentos, un lugar para poner a disposición de los alumnos todo tipo de documentos y también sites, blogs con enlaces a otros sitios de contenido. Digamos que esa es la funciona más primaria de un entorno virtual de aprendizaje pero también debe de permitir entregar trabajos, examinar online (incluso con límites de tiempo y resultados instantáneos), hacer encuestas, ver calificaciones, poner avisos, videoclases. Por supuesto permite comunicarse alumnos con profesores sin tener que coincidir en el tiempo ni por supuesto en el mismos espacio físico. De hecho se trata de romper esas barreras de espacio/tiempo.

Ni que decir tiene que un entorno virtual de aprendizaje que se precie debe de ser accesible desde cualquier sitio y, en estos momentos, también desde cualquier dispositivo. Por ultimo decir que los EVAS no están delimitados a la formación online o a distancia sino que son una herramienta complementaria a la formación presencial en muchas ocasiones.

Que es un entorno virtual?

En entorno virtual es un python aislado para solo UN proyecto que tiene sus propios modulos.

En otras palabras es crear un sitio unico para nuestro proyecto, donde tendra todo aparte, cosa que si se actualiza algun modulo yo decida si el proyecto realmente necesita o no la actualizacion.

Yo lo suelo relacionar con un bebe para recordarlo
(data:image/jpeg;base64,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)

Este curo no deja de sorprenderme!!, gracias Facundo

¿ Qué es un enorno virtual en python? Es un Python separado para un ùnico proyecto.Podemos instalar las dependencias que queramos sin afectar el python global

Entorno virtua: Es un Python separado para un ùnico proyecto.

¿Qué es un entorno virtual?
Un entorno virtual es comando para crear un directorio que contiene una instalación de Python de una versión en particular, además de unos cuantos paquetes adicionales.

Esto se utiliza con el fin de evitar problemas en la instalación de Python cumplir los requerimientos de todas las aplicaciones.

El Entorno Virtual se crear y maneja con un script es pynev.pyvenvque instalará la versión más reciente de Python que este disponible; posterior seleccionas una versión de Python especifica ejecutando python3 o la versión que desees.

Para crear el entorno virtual, decide en que carpeta quieres crearlo y ejecuta el módulo venv como script con la ruta a la carpeta y se estructura el comando:

python3 -m venv tutorial -env

Una ya vez creado el entorno virtual, podrás activarlo ejecutarlo de la siguiente manera:

En Windows, ejecuta: tutorial -env\Scripts\activate.bat
En Unix o MacOS, ejecuta: source tutorial -env/bin/activate

Para mas información deja lo parte en especifico de la creación de entornos:
https://docs.python.org/es/3/tutorial/venv.html

Necesitaba que me explicaran esto porque experimentando un poco tenia problemas con las versiones.
Después de este curso voy a aprender sobre Docker.

Que es un entorno virtual

Un Python aislado para cada proyecto que tiene sus propios módulos.

Modulo: código escrito por otra persona que nos sirve resolver un problema sin reinventar la rueda.

¿Qué son los ambientes virtuales?

Un entorno virtual es un espacio independiente a tu instalación local, con el objetivo de aislar los recursos y librerías. Gracias a este concepto podemos tener distintos entornos virtuales con diferentes versiones de Python o de una librería concreta. Por ejemplo, podríamos tener un entorno virtual con la versión 2.7 de Python para construir una aplicación y simultáneamente puede existir otro entorno virtual con la versión 3.6 de Python.

Un entorno virtual es una configuración especifica de Python y sus módulos para un proyecto en especial. Al mismo tiempo lo aísla y la protege de cualquier cambio en otros entornos y proyectos

Estos cambios sobre algun modulo tendria que ser según PEP 387 – Backwards Compatibility Policy sobre modulo privados.

Concepto de entorno virtual

¿Qué ocurre si se actualiza un módulo?

Entorno virtual

Módulo

Les recomendaría la clase de entornos virtuales del Curso de POO y Algoritmos con Python
"Los ambientes virtuales permiten aislar el ambiente para poder instalar diversas versiones de paquetes"

Sin duda algo que no había aprendido a pesar de ya haber trabajado con programación.

Entorno virtual : personalizar las librerías el código para cada uno de los proyectos

vale, creo que entendi el concepto

módulos que se ven en los cursos anteriores y que aplica para poder resolver un problema mas grande

Muy clara explicación.

Un entorno virtual funciona como un Python separado para cada proyecto, dónde tiene los módulos que este necesita y nostros podemos gestionar si traer otro, o si actualizarlos para que bajo este entorno, el código siempre funcione.

MIS NOTAS

modulo: codigo escrito por otra persona que nos sirve para incorporarlo en el propio codigo y “No reinventar la rueda”.

entorno virtual: es la clonacion del leguaje de programacion para evitar las actualizaciones de alguno de los modulos que estructuran en un proyecto.

Módulo

Código escrito por otra persona que sirve para resolver un problema específico de forma rápida.

Entorno Virtual

Es un ambiente aíslado para un solo proyecto con sus propios modulos y archivos que está pensado para funcionar únicamente en ese proyecto.

ojalá lo hubiera sabido antes de actualizar mis paquetes-módulos 😦

Un entorno virtual es cuando trabajamos con una versión del lenguaje de programación, que, se mantenga así para que cuando hay una actualización no se rompa nuestro proyecto.

Qué forma tan sencilla y precisa para describir lo que es un entorno virtual. Thanks a lot

Buena explicacion, habia escuchado del termino pero no tenia muy claro como funcionaba y para que servia.

Muy bueno!

osea versiones en cada proyecto

Te amo tucumano!

Concepto abstracto de entorno virtual.

Los módulos de python, son en pocas palabras, código de alguien más para solucionar un problema de específico. El cuál nosotros también podemos traer a nuestro proyecto.

Entorno virtual
Modulo es código ya escrito que se importa y se invoca.
Un Python para cada proyecto. Está aislado para funcionar unicamente en el proyecto.

Entorno virtual: Una manera de que cada proyecto use sus propias versiones de modulos

Entorno virtual: Espacio aislado para un solo proyecto que tiene sus propios modulos.

Agradezco mucho que hayan incluido esta clase.

Antes no me quedaba claro que era un entorno. Sin embargo en otros cursos , de Platzi y otros, empezábamos creando entornos virtuales pero no sabía el porqué.

Este tipo de clases hacen la diferencia entre los cursos

Yo he usado virtualenv, funciona muy bien: https://pypi.org/project/virtualenv/

Excellent explanation of a virtual environment, I think this class can help you understand the concept: https://platzi.com/clases/docker/ 😎

uff como explicas master, entendido perfectamente.

Si quieren complementan un poco más con este video que encontré: Entornos virtuales

Facu felicitaciones!!! Este curso se pone cada vez más bueno.