¿Cuál es la diferencia entre pyenv, virtualenv, anaconda?


Soy un programador ruby tratando de aprender python. Soy bastante familia con pyenv ya que es como copiar y pegar de rbenv. Pyenv ayuda a tener más de una versión de python en un sistema y también a aislar el python sin tocar la parte sensible del sistema.

Supongo que cada instalación de python viene con un paquete pip. Lo que todavía no entiendo es que hay muchas buenas bibliotecas de python que sugieren usar este virtualenv y anaconda. Incluso puedo encontrar virtualenv plugin para pyenv.

Ahora me estoy confundiendo con el propósito de estos dos pyenv y virtualenv. peor dentro de pyenv hay un plugin virtualenv.

Mis preguntas son:

  • ¿cuál es la diferencia entre pyenv y virtualenv?
  • ¿Hay alguna diferencia en usar el comando pip dentro de pyenv y virtualenv?
  • ¿qué hace este pyenv virutalenv?

Su explicación con ejemplo será muy apreciada.

Author: eldos, 2016-07-06

1 answers

Editar: Vale la pena mencionar pip aquí también, ya que conda y pip tienen similitudes y diferencias que son relevantes para este tema.

Pip: el Gestor de Paquetes de Python.

  • Podrías pensar en pip como el equivalente en python del comando ruby gem
  • pip no está incluido con python por defecto.
  • Puede instalar Python usando homebrew , que instalará pip automáticamente: brew install python
  • La final la versión de OSX no incluía pip de forma predeterminada. Para agregar pip a la versión de python de su sistema mac, puede sudo easy_install pip
  • Puede encontrar y publicar paquetes de python usando PyPI: El Índice de Paquetes de Python
  • Los requisitos.el archivo txt es comparable al ruby gemfile
  • Para crear un archivo de texto de requisitos, pip freeze > requirements.txt
  • Nota, en este punto, tenemos python instalado en nuestro sistema, y hemos creado un requisito.archivo txt que describe todo el python paquetes que se han instalado en su sistema.

Pyenv: Administrador de versiones de Python

  • De los documentos: pyenv le permite cambiar fácilmente entre varias versiones de Python. Es simple, discreto, y sigue la tradición UNIX de herramientas de un solo propósito que hacen una cosa bien. Este proyecto fue bifurcado de rbenv y ruby-build, y modificado para Python.
  • Muchas personas dudan en usar python3 .
  • Si necesita usar diferentes versiones de python, pyenv le permite administrar esto fácilmente.

Virtualenv: Gestor de Entorno Python.

  • De los documentos: El problema básico que se está abordando es uno de dependencias y versiones, e indirectamente permisos. Imagine que tiene una aplicación que necesita la versión 1 de LibFoo, pero otra aplicación requiere la versión 2. ¿Cómo se pueden utilizar ambas aplicaciones? Si instalas todo en /usr/lib/python2.7 / site-packages (o cualquiera que sea la ubicación estándar de su plataforma), es fácil terminar en una situación en la que involuntariamente actualiza una aplicación que no debería actualizarse.
  • Para crear un virtualenv, simplemente invoque virtualenv ENV, donde ENV es es un directorio para colocar el nuevo entorno virtual.
  • Para inicializar el virtualenv, necesita source ENV/bin/activate. Para dejar de usar, simplemente llame a deactivate.
  • Una vez que active el virtualenv, puede instalar todo un requisitos del paquete de workspace ejecutando pip install -r contra el archivo requirements.txt del proyecto.

Anaconda: Gestor de Paquetes + Gestor de Medio Ambiente + Bibliotecas Científicas Adicionales.

  • De los documentos: Anaconda 4.2.0 incluye una fácil instalación de Python (2.7.12, 3.4.5 y/o 3.5.2) y actualizaciones de más de 100 paquetes Python científicos y analíticos pre-construidos y probados que incluyen NumPy, Pandas, SciPy, Matplotlib e IPython, con más de 620 más paquetes disponibles a través de un simple conda install <packagename>
  • Como desarrollador web, no he usado Anaconda. Es ~3GB incluyendo todos los paquetes.
  • Hay una versión reducida miniconda, que parece que podría ser una opción más simple que usar pip + virtualenv, aunque no tengo experiencia usándolo personalmente.
  • Mientras que conda le permite instalar paquetes, estos paquetes son independientes de los paquetes PyPI, por lo que aún puede necesitar usar pip adicionalmente dependiendo de la tipos de paquetes que necesita instalar.

Véase también:

 56
Author: Wade Williams,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-03 17:52:05