Cuándo usar entornos virtuales de Python | venv

Utiliza entornos virtuales. Casi siempre.

Foto por Markus Spiské en Unsplash

A menudo puede escuchar que los principiantes a menudo usan la instalación de Python en su sistema, lo cual es incorrecto. Herejía. Nunca debe usar la instalación de su sistema, ya que puede causar mucho daño. Entonces, no lo hagas. Hacer. Que.

¿Es eso cierto? ¿Nunca deberíamos usar el Python instalado en nuestro sistema? ¿O deberíamos usar lo que ellos llaman entornos virtuales? Este artículo analiza cuándo se deben usar entornos virtuales y si esto cuando medio siempre. Antes de discutir este aspecto, tendré que presentar los entornos virtuales, para que todos capten la idea básica detrás de ellos. La verdad es que cualquiera que use Python para tareas más avanzadas que las que ofrece una calculadora debería saber cómo usar entornos virtuales.

Recuerdo mis primeros intentos de utilizar entornos virtuales. Eran… eran deprimentes, tanto mis intentos como mis entornos virtuales. Después de un tiempo, supe que lo eran debido al IDE que usaba. No importa qué IDE era. Tal vez fue mi error, tal vez haya algo mal con el IDE, no importa. Lo que importa es que no pude resolver el problema por mí mismo. Decidí revisar Visual Studio Code, y todos mis problemas desaparecieron, así como así. Todo funcionó como debería.

En este artículo, no discutiré las diversas formas de crear entornos virtuales y administrar dependencias. En cambio, explicaré por qué deberíamos usar entornos virtuales y cuando. También discutiré algunos aspectos esenciales de ellos y de su uso.

Sin embargo, para hacer mi punto, tendré que usar algo, y usaré venv. Es una herramienta popular y bastante simple para crear entornos virtuales, que encuentro lo suficientemente eficiente en la mayoría de las situaciones. Cuando comencé mi aventura con Python, tuve un par de momentos deprimentes. Después de un tiempo, aprecié venvla sencillez. Podría haberlo apreciado antes, pero me perdí un buen recurso sobre entornos virtuales. Esta es la razón principal por la que escribo este artículo. Espero que salve a muchos principiantes de tales momentos de depresión y desánimo. También creo que la mayoría de los principiantes deberían apreciar venv y su sencillez, como yo lo hice. Es por eso que lo usaremos en este artículo.

Después de leer este artículo, incluso los científicos de datos principiantes y los entusiastas de Python deberían saber qué son los entornos virtuales, por qué deberían usarlos y cómo hacerlo.

De acuerdo a la documentación de venv,

Un entorno virtual se crea sobre una instalación de Python existente, conocida como Python «base» del entorno virtual, y puede aislarse opcionalmente de los paquetes en el entorno base, por lo que solo están disponibles los instalados explícitamente en el entorno virtual.

Vamos a traducirlo al idioma de un principiante. Imagina que has instalado Python en tu computadora. Esta es «una instalación de Python existente» y está instalada en su sistema operativo. También es la instalación de su sistema, lo que significa que cuando ejecuta el python (en Linux, es posible que deba ejecutar python3, para distinguirlo del comando Python 2) en el shell, se abrirá esta misma instalación (en aras de la simplicidad, supongamos que aún no tiene ningún entorno virtual en su sistema). Puede usar esta instalación de Python existente para crear un entorno virtual. Cuando lo haga, se convertirá en el Python «base» para su entorno virtual.

Nota: Cuando tenga más versiones de Python instaladas en su máquina, la que se abre después de la python comandos es el sistema Python. Recuerda que puedes usar ningún de estas versiones para crear un entorno virtual. En aras de la simplicidad, no utilizaremos ninguna de estas versiones adicionales en este artículo; en cambio, trabajaremos con la instalación del sistema de Python.

Ahora imagina que instalas (desde PyPi) paquetes complementarios en la instalación de su sistema de Python. Para hacer esto, puede ejecutar el siguiente comando en el shell:

$ pip install makepackage perftester==0.4.0 easycheck==0.3.3

Estos tres paquetes son solo ejemplos: makepackage es un paquete de Python para crear nuevos paquetes de Python, perftester se dedica a las pruebas de rendimiento de las funciones de Python, y easycheck le ayuda a escribir verificaciones legibles similares a aserciones dentro de su código (en lugar del assert instrucción, que no debe usarse en el código de producción). Los uso como he (co-)autor de ellos.

Estos tres paquetes ahora están disponibles en la instalación de su sistema de Python. Entonces, si ejecuta Python (todavía asumimos que no hay un entorno virtual de Python en su máquina), podrá importarlos.

Una nota importante sobre la instalación de paquetes. Tenga en cuenta que instalamos los tres paquetes de dos maneras: makepackage se instala sin indicar su versión; por perftestersolicitamos versión 0.4.0 mientras que para easycheck versión 0.3.3. Esto significa que cada vez que uno instala estos tres paquetes de esa manera, makepackage se instalará en la versión actualizada (más reciente), perftester en el 0.4.0 versión, y easycheck en el 0.3.3 versión.

Imagine ahora que en su proyecto actual, digamos Proyecto Antesde hecho necesitas perftester==0.4.0 y easycheck==0.3.3. Terminaste el proyecto, todo funciona bien. Después de un tiempo, comienza un segundo proyecto, digamos Proyecto despuésy necesitas easycheck==0.5.0. Cambios de 0.3.3 a 0.5.0 en easycheck fueron importantes, ya que cambió la forma en que se manejan los mensajes. Necesitamos actualizar el paquete:

$ pip install --upgrade easycheck==0.5.0

Tu terminas Proyecto después, y todo funciona bien. Pero después de un mes, tienes que volver a Proyecto Antes. Ejecutas el proyecto, pero no funciona como lo hacía antes de empezar Proyecto después. ¿Por qué?

Proyecto Antes¡La aplicación ha cambiado su comportamiento porque cambiaste el entorno de Python! Lo que cambiaste es la versión de easycheck. Tales pequeños cambios pueden resultar en cambios más pequeños o más grandes en sus proyectos, dependiendo de varios aspectos del código. En casos extremos (no necesariamente con easycheck), la aplicación puede incluso dejar de ejecutarse.

Ya que Proyecto Antes estaba listo, no puede cambiar su código por razones tan poco importantes. Por lo tanto, rebajas easycheck. Después de la rebaja, Proyecto Antes funciona bien, como lo hacía antes… Pero al día siguiente, su jefe le pide que ejecute la aplicación desde Proyecto después, por lo que debe actualizar el paquete nuevamente; todo está bien, de nuevo. Bueno, no todos… Proyecto AntesLa aplicación de no funcionaría… Mientras tanto, perftester Ha sido actualizado; actualizas tu versión en la instalación del sistema. Proyecto Antes otra vez… Proyecto despuésmakepackage actualizado… Proyecto Antes, Proyecto después, Proyecto Antes, makepackage, Proyecto después, easycheck

¡Que desastre!

A pesar de trabajar en solo dos proyectos, su vida se ha convertido en una pesadilla. ¿Por qué? ¿Qué ha pasado?

¿Notó que operamos en un solo entorno, que consiste en la base Python, la que instalamos en nuestro sistema? Es por eso que tuvimos que degradar y actualizar easycheck como locos, cada vez que queríamos cambiar entre los dos proyectos.

¡Tiene que haber una mejor manera!

Tenga en cuenta que aquí usamos un entorno, y ¿no sería más fácil tener dos ambientes, uno para Proyecto Antes y otro para Proyecto después? Mmm… y Sigue siendo otra por makepackage, como queremos usarlo para crear paquetes para nuevos proyectos? Y si comenzamos otro proyecto de Python, ¿por qué no podemos usar un entorno nuevo y fresco…?

Aquí es donde entran en juego los entornos virtuales.

Entornos virtuales: la esencia

Dejemos de lado los tecnicismos de los entornos virtuales. Si eres principiante, no necesitas conocimientos demasiado detallados sobre ellos, lo suficiente para saber qué son, cómo usarlos y cuándo; si eres un desarrollador avanzado de Python, probablemente sepas todo eso y mucho más. Sin embargo, si desea o necesita obtener más información sobre los entornos virtuales, deberá buscar recursos más avanzados. Si conoce algunos particularmente buenos, compártalos con nosotros en los comentarios y díganos qué (en general, no en detalle) se puede aprender de ellos sobre los entornos virtuales.

En este artículo, estamos discutiendo los aspectos prácticos de virtual entornos. Ahora que sabe lo que son, quiero que comprenda lo que ofrecen y cómo puede utilizarlos. También quiero responder a la pregunta que sugiere el subtítulo: ¿Por qué deberías usar entornos virtuales? casi ¿siempre?

Puede considerar un entorno virtual de Python como el entorno de su proyecto para desarrollar código de Python. El entorno consiste en

  • el Python en una versión particular;
  • la biblioteca estándar de este Python;
  • paquetes de Python instalados adicionalmente, ya sea en versiones específicas o no.

El elemento principal es, por supuesto, Python. Puedes usar cualquier versión de Python; si utiliza venv, esta versión debe estar instalada en su máquina. La biblioteca estándar, por supuesto, viene con él. Recuerde que el Python de un entorno virtual no tiene por qué ser el mismo que el de la instalación de su sistema. Puede tener varios entornos virtuales, cada uno con una versión diferente de Python. En cada entorno virtual, puede instalar cualquier paquete (desde PyPi o cualquier otro registro de paquetes, o desde archivos locales).

Como ves, un entorno virtual hace que tu entorno casi independiente. No es independiente en términos del sistema operativo, como lo son los contenedores Docker. Pero es independiente en términos de Python y sus dependencias.

Vamos a crear dichos entornos virtuales para los dos proyectos anteriores. Supongamos que está utilizando la instalación del sistema de Python 3.9.5.

Ambiente para Proyecto Antes

$ mkdir project_before
$ python -m venv venv-before

Mmm… ¿Eso es todo? Sí, eso es todo, o más bien eso es casi todo. Con estas dos líneas, ha creado un entorno virtual completamente nuevo, con Python y la biblioteca estándar. El ambiente se llama venv-beforey puede ver que tiene una carpeta dedicada llamada, como era de esperar,venv-before. Su estructura depende de si trabajas en Linux o Windows. Le recomiendo que verifique qué contiene su entorno virtual, ya que esto puede ayudarlo a conocer algunos detalles. Allí encontrará un lugar para Python base, para la biblioteca estándar y para paquetes externos.

Nuestro siguiente paso será instalar los paquetes del sitio. Pero primero, necesitamos activar el entorno. Cómo hacer esto depende del sistema operativo:

------ Windows ------
> venv-beforeScriptsactivate
------ Linux ------
$ venv-before/bin/activate

De ahora en adelante, el indicador de shell debería mostrar que el entorno está activado, a menos que esté estructurado de una manera que inhabilite la visualización de dicha información. Cada indicador de shell por defecto muestra esta información, como, por ejemplo, (venv-before) al principio del indicador; a continuación, verá cómo se ve.

Ahora es el momento de instalar los paquetes que necesitamos. El mismo comando se usa en Windows y Linux:

(venv-before) $ python -m pip install perftester==0.4.0 easycheck==0.3.3

Esto instalará la versión actual de perftester (versión 0.4.0) y easycheck (versión 0.3.3). Estos eran los requisitos de Proyecto Antes. ¡Y eso es! Su entorno está listo para ser utilizado en Proyecto Antes.

Recuerde que una vez que haya terminado de trabajar en Proyecto Antes y desea cambiar entre proyectos, debe desactivar su entorno virtual. Puedes hacerlo desde cualquier lugar, usando el comando deactivate:

(venv-before) $ deactivate

La desactivación a veces se realiza en segundo plano. Por ejemplo, cuando estás en un entorno y activas otro, el primero se desactiva automáticamente antes de que se active el segundo.

Esta desactivación es fundamental. Sin él, cualquier cosa que haga, como instalar un nuevo paquete, se haría dentro del venv-before entorno virtual, por lo que afectaría a este mismo entorno.

Sea o no un desarrollador cuidadoso y organizado, debe tomar medidas de precaución. Una forma de hacerlo es creando un archivo con requisitos (las dependencias que necesita), requirements.txty guarda allí los requisitos:

# requirements.txt
easycheck==0.3.3
perftester==0.4.0

Este archivo se denomina archivo de requisitos. Si necesita recrear un entorno virtual o instalarlo en una máquina diferente (p. ej., todos los desarrolladores del equipo deben trabajar con los mismos entornos virtuales), puede usar el siguiente comando en lugar de instalar los paquetes del sitio manualmente:

(venv-before) $ python -m pip install -r requirements.txt

Hemos cubierto los conceptos básicos. Hay mucho más en este tema: código de embalaje, pip-tools, makepackagey otras herramientas, generalmente más avanzadas, como poetry y Cookiecutter. Pero lo que hemos aprendido hasta ahora debería ser suficiente para la mayoría de los proyectos en los niveles básico e intermedio y, a veces, incluso en los avanzados.

A veces puede engañar a algunos problemas con los permisos. Tendrás que resolverlos; no están necesariamente relacionados con Python, sino con su sistema operativo y los permisos de su usuario.

Ambiente para Proyecto después

Ahora que tenemos la venv-before entorno virtual, podemos trabajar en Proyecto Antes y utilice la aplicación resultante. Desarrollar Proyecto después, sin embargo, necesitamos crear su entorno virtual. Comencemos en la carpeta raíz, donde queremos que se ubique el proyecto.

(venv-before) $ deactivate
$ mkdir project-after
$ python -m venv venv-after
$ source project-after/bic/activate
(venv-after) $ python -m pip install easycheck==0.5.0 perftester==0.4.0

¡Y eso es! Ahora podemos cambiar entre los entornos (activando el que desea usar) y desarrollar o ejecutar la aplicación dentro de ellos. Esto es exactamente para lo que existen los entornos virtuales: permitir que el desarrollador/usuario trabaje en entornos dedicados a proyectos particulares.

Ahora deberíamos crear un tercer entorno, digamos, venv-makepackage. No se usaría en un proyecto, sino para crear nuevos paquetes de Python. Te dejo con este ejercicio: hazlo tú mismo y comprueba si el entorno virtual resultante funciona bien. Recuerde que no queremos utilizar ninguna versión en particular de makepackagelo que básicamente significa que usaremos su versión más reciente.

Arriba, hemos cubierto los conceptos básicos de los entornos virtuales. A menudo, estos conceptos básicos son suficientes para desarrollar proyectos de Python. Antes de continuar, le sugiero que dedique algún tiempo a practicar estos conceptos básicos. Esto debería ayudarlo a sentir la vibra de trabajar con entornos virtuales. Después de un par de proyectos, no debería tener problemas con este enfoque de desarrollo.

Sin embargo, hay más en los entornos virtuales. A continuación, discutiré varios temas importantes, aunque no profundizaré demasiado en ellos, ya que esto haría que el artículo fuera demasiado largo y complicado, algo que quiero evitar. Planeo cubrir algunos de estos temas en mis futuros artículos.

embalaje

Cuando era un desarrollador principiante de Python, solía desarrollar aplicaciones de Python desarrollando su código dentro de entornos virtuales, tal como se describe en este artículo. A menudo no necesitas nada más; a veces, sin embargo, es posible que necesite más.

Hay varios otros enfoques que son más avanzados que este básico. El empaque es uno de ellos, y de hecho, es uno de los que uso en estos días en casi todos mis proyectos. Aunque pueda parecer complicado, el embalaje es eficiente en muchos aspectos.

Aquí, solo quiero mencionar el código de empaquetado, y escribiré más al respecto en otro artículo. Si desea obtener más información, puede leer la documentación del makepackage Paquete Python, que creé para simplificar el embalaje. Puede usarlo para crear la estructura de un paquete de Python.

dependencias

Cuando instala un paquete en su entorno virtual, puede instalarse con o sin dependencias. Cuando tiene sus propias dependencias, lo que significa que requiere otros paquetes del sitio para funcionar, entonces pip install instalará, de forma predeterminada, esas dependencias.

Debes recordar esto, porque cuando analizas una lista de paquetes instalados en tu entorno virtual, lo haces con el comando pip list, verá los paquetes que instaló, pero también sus dependencias, y las dependencias de estas dependencias, y así sucesivamente. Si necesita crear otra instancia del entorno virtual (por ejemplo, en una computadora diferente), para que su entorno funcione correctamente, es posible que deba asegurarse de que todas estas dependencias estén en las mismas versiones que en el entorno virtual original.

Hay métodos para lograr esto, tales como pip freeze o poetry, unos mejores que otros. En el futuro, hablaremos de algunos de ellos.

Estropear un entorno virtual

Imagina que desarrollas tu aplicación dentro de un entorno virtual. Un día, debe probar un nuevo paquete de sitio; entonces, lo instalas dentro del entorno y compruebas cómo funciona tu aplicación con él. Desafortunadamente, no funciona de la manera que esperabas, por lo que renuncias a la idea de usarlo. Una semana después, revisa otro paquete del sitio y la historia se repite, por lo que resulta inútil.

El entorno virtual ha comenzado a verse como un basurero, con todos esos paquetes que no necesitas, junto con sus dependencias… En pocas palabras, ¡tu entorno virtual está arruinado!

Para limpiar este lío, puede desinstalar los paquetes que instaló. Haces esto usando el mismo pip comando que usó para instalar los paquetes, pero reemplazando install con uninstall. Así, por ejemplo, para eliminar perftesterpuedes usa el siguiente comando

(venv-before) $ python -m uninstall perftester

No es necesario proporcionar la versión del paquete aquí, ya que solo puede tener una versión del paquete instalada en el entorno virtual.

Hay, o más bien puede haber, un problema con esto. Si los paquetes que eliminó tienen sus propias dependencias, estas dependencias se agregaron al entorno virtual. Por cierto, perftester tiene una dependencia, es decir, memory_profiler; Y lo que es más, memory_profiler tiene su propia dependencia, psutil, y también se instaló. cuando quitaste perftesterno eliminaste ni su dependencia (memory profiler) ni su dependencia (psutil)!

Después de todo, su entorno se convierte en un basurero. No mencioné otros posibles problemas, que ocurren de vez en cuando. Por ejemplo, un paquete puede tener una dependencia que debe estar en una versión diferente a la que ya tenemos instalada y necesidad en nuestro proyecto. Tal conflicto puede ser difícil de resolver.

A continuación, te explico cómo proceder cuando te hayas acercado a este mismo punto del desarrollo: tu entorno virtual está estropeado. En mi opinión, la prevención es el mejor enfoque aquí, representando el más vale prevenir que lamentar Acercarse. Los entornos virtuales no son muy ligeros, pero tampoco tan pesados. En WSL, un entorno virtual nuevo, sin ningún paquete de sitio, ocupa unos 7,3 MB de espacio; en Windows, es de 15,3 MB. Por ejemplo, instalando pandas y sus dependencias aumentan el tamaño a 138 y 124 MB, respectivamente.

los más vale prevenir que lamentar La solución en el caso de trabajar con entornos virtuales es más o menos la siguiente. Cuando desee verificar cómo funciona una nueva versión del entorno (por ejemplo, con un nuevo paquete de sitio), crear un nuevo entorno y trabajar en él. Una vez que decida usar este paquete, instálelo en el entorno virtual real. Si no, simplemente elimine este entorno.

De esa manera, siempre tendrá un entorno virtual funcional y actualizado. Si necesita verificar una nueva idea que requiere cambios en el entorno, hágalo en un nuevo entorno y:

  • Si la idea se implementa, puede realizar estos cambios en el entorno principal y eliminar el otro entorno virtual; o puede tratar este otro entorno como el principal.
  • Si se rechaza la idea, elimine el otro entorno virtual.

Reinstalación

Como se deduce de arriba, no hay necesidad de apegarse a un entorno virtual. Puede eliminar fácilmente uno y crear otro. Si su entorno virtual se ha estropeado de alguna manera, simplemente elimínelo y cree uno nuevo.

Esto requiere que realice un seguimiento de todas las dependencias que necesita tener instaladas en el entorno virtual. Por lo tanto, necesita un buen archivo de requisitos para que pueda crear fácilmente un nuevo entorno virtual desde cero.

Nunca tenga miedo de crear un nuevo entorno virtual y eliminar los antiguos. Cuando era un principiante, dedicaba demasiado tiempo a intentar arreglar mis entornos virtuales. Realmente no tiene sentido. Los entornos virtuales son no parte de la solución: la información sobre cómo crear un entorno virtual es; es decir, la versión de Python y las dependencias.

En pocas palabras, los entornos virtuales son solo herramientas y puede usar varias de ellas al mismo tiempo. No hay necesidad de estar apegado a ninguno de ellos. Por lo tanto, debe crear un entorno virtual de vez en cuando, mejor con más frecuencia que con menos frecuencia; le permite verificar si la solución aún funciona como se esperaba.

¿Qué pasa si el código ha funcionado bien en el entorno virtual anterior pero no funciona en uno nuevo? Lo más probable es que esto signifique que hemos documentado incorrectamente la creación del entorno virtual: hay un error en alguna parte. Para descubrir este error, puede comparar ambos entornos, porque es posible que el anterior contenga una dependencia que el nuevo entorno no detecte. También es posible que haya una diferencia en las versiones de algunas dependencias.

Tales errores ocurren, y por eso es recomendable reemplazar, de vez en cuando, el entorno virtual de trabajo por uno nuevo.

Arriba, usamos la instalación del sistema de Python con un solo propósito: instalar entornos virtuales. Pero, ¿hay algún otro uso para el sistema Python?
Me he encontrado con un enfoque radical según el cual este es su solamente aplicación, y hagamos lo que hagamos en Python, deberíamos hacerlo dentro de un entorno virtual dedicado. El mismo enfoque radical establece que no debe instalar ningún paquete adicional fuera de los entornos virtuales.

¿Es realmente el caso? ¿Deberíamos limitarnos tanto? ¿Deberíamos ser tan cuidadosos y no usar la instalación del sistema Python, excepto para crear entornos virtuales?

Sinceramente, no estoy del todo de acuerdo con esta afirmación. Si bien estoy totalmente de acuerdo en que cada proyecto debe tener su propio entorno virtual dedicado, no creo que debamos usar el sistema Python si necesitamos hacer algo menor. Utilizo la instalación del sistema Python de vez en cuando, pero nunca para cuestiones importantes.

Por ejemplo, a veces quiero calcular algo o ver cómo hacer algo en Python. ¿Debo realmente instalar un nuevo entorno virtual para este propósito? ¿No sería eso una exageración? Seguramente, cuando quiero verificar algo como parte de un proyecto determinado, uso el entorno virtual del proyecto. Pero digamos que quiero recordar cómo crear clases de excepción personalizadas con .__ init __() y .__ str __() métodos; o cómo utilizar multiprocessing.Pool; o como .__repr__() trabajos en clases; o comprobar cómo dataclasses trabajar; o comprueba qué tan rápido es que dict()usando timeit; y así sucesivamente… ¿Debería crear un entorno virtual cada vez que quiera hacer algo así? No me parece. En cambio, simplemente uso la instalación del sistema.

De hecho, podría crear un entorno virtual y usarlo para tales fines, en lugar de la instalación del sistema. Podría considerar este enfoque, es decir, usar un entorno virtual para verificar varias cosas, una medida de precaución adicional, un enfoque que es un poco más seguro que usar la instalación del sistema.

La instalación de paquetes de sitio en la instalación del sistema Python es otra cuestión. Ten cuidado con eso. Digamos que quieres instalar pandas para que pueda iniciar una sesión interactiva y realizar un análisis exploratorio de un conjunto de datos. En mi opinión, deberías hacer esto en un entorno virtual creado específicamente para el análisis de datos; puede instalar allí otros paquetes analíticos, incluidos los que le permiten visualizar datos. Después de todo, pandas o numpy o lo que sea que haya instalado allí puede actualizarse de vez en cuando, por lo que es más seguro actualizarlos en el entorno virtual que en la instalación del sistema.

En otras palabras, no creo que nunca debas usar la instalación del sistema Python, bajo ninguna circunstancia; y que hagamos lo que hagamos en Python, debemos hacerlo en un entorno virtual, sin excepciones. A veces podemos usar con seguridad el sistema Python. ¿Por qué harías eso? Por simplicidad, eso es todo. Sin embargo, si cualquier cosa que desee hacer requiere que se instalen los paquetes del sitio, ese es otro asunto: será mucho más seguro configurar un nuevo entorno virtual, instalar los paquetes allí y hacer lo que necesite dentro de él. .

Puede utilizar muchos enfoques diferentes para organizar sus proyectos de software. La herramienta básica de Python son los entornos virtuales. A pesar de ser básicos, los entornos virtuales ofrecen bastante. Una vez que sepas cómo usarlos, podrás organizar tu trabajo en Python sin mayores problemas. Con el tiempo, tus habilidades de programación mejorarán y aprenderás más herramientas y técnicas para organizar tus proyectos.

Sin embargo, lo primero es lo primero. Al aprender Python, aprenda a trabajar en entornos virtuales. No lo pospongas; aprenderlo desde el primer día.

Tiempo entornos virtuales es un término general que describe un concepto del mismo nombre, hay varias herramientas que puede usar. Hace tiempo, virtualenv fue quizás la herramienta más común. Ahora es venv. Pero también puedes usar conda entornos y otras herramientas.

En este artículo, describí venv. Las razones eran dos. Primero, lo considero una muy buena herramienta para principiantes. Cuando yo era un principiante, venv me ayudo mucho. Cuando comencé a usarlo, mi desarrollo de Python se aceleró. Hice no Empieza a usar venv desde el primer día, y me arrepiento. Pero comencé muy pronto, y estoy feliz por eso.

En segundo lugar, encuentro venv mi herramienta. Lo considero ligero y lo suficientemente simple. Cuando trabajo en mis paquetes de código abierto, uso entornos virtuales y los creo usando venv. Cuando trabajo en proyectos de software en la industria, casi siempre uso venv, también. Cuando es mi decisión, es siempreaunque combino venv con embalaje A veces, un DevOps en un proyecto decide que debemos usar otra herramienta, como contenedores de desarrollo; Estoy bien con eso. Pero tales herramientas son mucho más complicadas, y no las recomendaría a principiantes o incluso a Pythonistas intermedios.

Para resumir, mi sugerencia es la siguiente. Cuando aprenda Python o trabaje en sus proyectos, use entornos virtuales. Para crearlos, utilice venv. Lo hago incluso en proyectos de ciencia de datos, aunque conda es una herramienta común para administrar entornos virtuales entre los científicos de datos. Sin embargo, me gusta tener un control total de los entornos en los que codifico y venv me permite tenerlo.

No digo que otras herramientas sean malas o que no debas usarlas. Pero estoy diciendo que me gusta usar venv y considéralo una buena herramienta para principiantes. Llegará el momento de que aprendas y utilices otras herramientas, pero tómate tu tiempo; no te apresures

Fuente del artículo

Deja un comentario