python pip anaconda virtualenv pyenv

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



pip (1)

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

Supongo que cada instalación de Python viene con 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 el plugin virtualenv 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 el uso del comando pip dentro de pyenv y virtualenv?
  • ¿Qué hace este pyenv virutalenv?

Su explicación con el ejemplo será muy apreciada.


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 Administrador de paquetes de Python.

  • Puede pensar en pip como el equivalente en python del comando ruby gem
  • pip no se incluye con python de forma predeterminada.
  • Puede instalar Python usando homebrew , que instalará pip automáticamente: brew install python
  • La versión final de OSX no incluía pip por defecto. 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 utilizando PyPI: el índice de paquetes de Python
  • El archivo gemfile es comparable al ruby gemfile
  • Para crear un archivo de texto de requisitos, pip freeze > requirements.txt
  • Tenga en cuenta que, en este punto, tenemos Python instalado en nuestro sistema, y ​​hemos creado un archivo require.txt que describe todos los paquetes de Python que se han instalado en su sistema.

pyenv: Administrador de versiones de Python

  • De los documentos : pyenv le permite cambiar fácilmente entre múltiples 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 se bifurcó desde rbenv y ruby-build, y se modificó para Python.
  • Mucha gente duda en usar python3 .
  • Si necesita usar diferentes versiones de python, pyenv permite administrar esto fácilmente.

virtualenv: Python Environment Manager.

  • De los documentos : El problema básico que se aborda es una de las dependencias y versiones, y los permisos indirectos. 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 puede usar ambas aplicaciones? Si instala 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 actualiza involuntariamente una aplicación que no debería actualizarse.
  • Para crear un virtualenv , simplemente invoque virtualenv ENV , donde ENV es un directorio para colocar el nuevo entorno virtual.
  • Para inicializar virtualenv , necesita source ENV/bin/activate . Para dejar de usar, simplemente llame a deactivate .
  • Una vez que active virtualenv , puede instalar todos los requisitos del paquete del espacio de trabajo ejecutando pip install -r en el archivo pip install -r del proyecto.

Anaconda: Package Manager + Environment Manager + 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 de Python científicos y analíticos pre-construidos y probados que incluyen NumPy, Pandas , SciPy, Matplotlib e IPython, con más de 620 paquetes disponibles a través de una simple conda install <packagename>
  • Como desarrollador web, no he usado Anaconda. Es ~ 3GB incluyendo todos los paquetes.
  • Hay una versión reducida de miniconda , que parece ser una opción más simple que usar pip + virtualenv , aunque no tengo experiencia en usarlo personalmente.
  • Si bien conda permite instalar paquetes, estos paquetes están separados de los paquetes de PyPI, por lo que es posible que necesite usar pip adicionalmente dependiendo de los tipos de paquetes que necesite instalar.

Ver también: