Encontramos la respuesta a esta cuestión, al menos eso pensamos. Si sigues con preguntas dínoslo y con gusto te ayudaremos
Solución:
Pyenv y entorno virtual son herramientas muy diferentes que funcionan de diferentes maneras para hacer cosas diferentes:
-
Pyenv es una extensión de bash, no funcionará en Windows, que intercepta sus llamadas a python, pip, etc., para dirigirlas a una de varias cadenas de herramientas del sistema python. Por lo tanto, siempre tiene disponibles todas las bibliotecas que ha instalado en la versión de python seleccionada; como tal, es bueno para los usuarios que tienen que cambiar entre diferentes versiones de python.
-
VirtualEnves Python puro, por lo que funciona en todas partes, hace una copia de, opcionalmente una versión específica de, python y pip local para el entorno de activación que puede o no incluir enlaces a la cadena de herramientas del sistema actual, si no lo hace, puede instalar solo un subconjunto conocido de bibliotecas en ese entorno. Como tal, es casi seguro que es mucho mejor para las pruebas y la implementación, como saben. exactamente qué bibliotecas, en qué versiones, se utilizan y un cambio global no afectará a su módulo.
venv pitón > 3.3
Tenga en cuenta que desde Python 3.3 en adelante hay una implementación integrada de VirtualEnv llamada venv (con, en algunas instalaciones, un contenedor llamado pyvenv; este contenedor está obsoleto en Python 3.6), que probablemente debería usarse con preferencia. Para evitar posibles problemas con el envoltorio, a menudo es una buena idea usarlo directamente usando /path/to/python3 -m venv desired/env/path
o puedes usar el excelente py
selector de python en windows con py -3 -m venv desired/env/path
. Creará el directorio especificado con desired/env/path
configurarlo y llenarlo apropiadamente. En general, es muy parecido a usar VirtualEnv.
Herramientas adicionales
Hay una serie de herramientas que vale la pena mencionar y considerar, ya que pueden ayudar con el uso de una o más de las anteriores:
- VirtualEnvWrapper Administre y simplifique el uso y la administración de VirtualEnv – Plataforma cruzada.
- pyenv-virtualenv, instalado por pyenv-installerque brinda herramientas PyEnv para administrar e interactuar con VirtualEnv; con esto, puede tener una instalación base que incluya más de una versión de python y crear entornos aislados dentro de cada uno de ellos. Linux/OS-X. Sugerido por Johann Visagie
- PyInstaller puede tomar su código python, posiblemente desarrollado y probado bajo VirtualEnv, y agruparlo para que pueda ejecutar una plataforma que no tiene tu versión de python instalado: tenga en cuenta que no es un compilador cruzado, necesitará una máquina (virtual) de Windows para crear instalaciones de Windows, etc., pero puede ser útil incluso cuando puede estar seguro de que python se instalará pero no puede estar seguro de que la versión de python y todas las bibliotecas serán compatibles con su código.
Version corta:
virtualenv
le permite crear instalaciones locales (por directorio), independientes de python mediante la clonación de las existentespyenv
le permite instalar (construir desde la fuente) diferentes versiones de Python una al lado de la otra; luego puede clonarlos con virtualenv o usar pyenv para seleccionar cuál ejecutar en un momento dado
Versión más larga:
Virtualenv le permite crear una instalación personalizada de Python, por ejemplo, en un subdirectorio de su proyecto. Esto se hace mediante la clonación de una instalación de Python existente en algún lugar de su sistema (algunos archivos se copian, algunos se reutilizan/comparten para ahorrar espacio). Cada uno de sus proyectos puede tener así sus propios python
(o incluso varios) bajo sus respectivos virtualenv. Está perfectamente bien que algunos/todos los entornos virtuales tengan la misma versión de python
(por ejemplo, 3.8.5) sin conflicto: viven separados y no se conocen. Si quieres usar alguno de esos python
s de shell, tienes que activate
(ejecutando un script que modificará temporalmente su PATH
para asegurarse de que virtualenv bin/
el directorio viene primero). A partir de ahí llamando python
(o pip
etc.) invocará la versión de ese virtualenv hasta que deactivate
(que restaura el PATH
). También es posible llamar a un virtualenv Python usando su ruta absoluta; esto puede ser útil, por ejemplo, cuando se invoca a Python desde un script.
Pyenv opera en una escala más amplia que virtualenv. Se utiliza para instalar (construir desde la fuente) versiones arbitrarias de Python (mantiene un registro de versiones disponibles). De forma predeterminada, todos están instalados uno al lado del otro en ~/.pyenv
, por lo que son “más globales” que virtualenv. Luego, le permite configurar qué versión de Python ejecutar cuando usa el python
comando (sin virtualenv). Esto se puede hacer a nivel global o, por separado, por directorio (colocando un .python-version
archivo en un directorio). Se hace anteponiendo la cuña de pyenv. python
guión para su PATH
(permanentemente, a diferencia de virtualenv) que luego decide qué “real” python
invocar. Incluso puede configurar pyenv para llamar a uno de sus pythons virtualenv (usando el pyenv-virtualenv
enchufar). También puede duplicar versiones de Python (dándoles nombres diferentes) y dejar que diverjan.
Usar pyenv puede ser una forma conveniente de instalar Python para el uso posterior de virtualenv.
Comentarios y puntuaciones de la guía
Si para ti ha sido útil nuestro artículo, sería de mucha ayuda si lo compartes con el resto seniors y nos ayudes a extender esta información.