Usando pip vs. MacPorts para instalar paquetes de Python

8

Podría instalar un paquete de python ( por ejemplo , numpy ) en mi Mac a través de Macports:

port install py-numpy

o mediante pip :

pip install numpy

¿Cuáles son las ventajas y desventajas generales de cada enfoque? ¿Cuándo debería usarse cada enfoque?

  • ¿Cuándo debería preferir uno sobre el otro?
  • ¿Importa si el paquete que estoy instalando es pequeño o grande (por ejemplo, numpy )?
  • ¿Depende de la versión de python que estoy usando ( 2.x vs. 3.x , o python de Apple vs. python de MacPort)?
  • ¿Importa si tengo varias versiones de python instaladas en mi Mac?
  • ¿Pueden usarse simultáneamente?

Espero una respuesta que tenga una breve lista de algunos pros / contras de cada enfoque con alguna discusión sobre cuándo elegir uno sobre el otro.

    
pregunta jvriesem 06.05.2017 - 01:57

2 respuestas

4

Se pueden usar al mismo tiempo, y no debería haber problemas entre mezclar los dos (con un poco de una gran advertencia y un gotcha ...)

La advertencia

La advertencia es que macports / homebrew y pip no tendrán conocimiento de cada una de las instaladas en comparación con la otra.

Entonces, por ejemplo, supongamos que instala Python 3.6 en su Mac. Desea nltk , que no está disponible técnicamente para esa versión en Macports, pero está en pip. Así que se instala en pip. Dos meses después, ve que está instalado en Macports y elige instalarlo. Ahora tienes dos versiones diferentes de nltk en tu máquina, así que caveat emptor .

El Gotcha

Si utiliza pip con Macports, debe asegurarse de que es el pip que se instala a través de Macports y está asociado con esa versión de python. Entonces, por ejemplo, verá un py35-pip, py36-pip, etc.

Una vez que instales el pip adecuado, usas el comando select de Macports para asegurarte de que esté activado con la versión apropiada de python:

sudo port select
    
respondido por el Rob M. 13.10.2017 - 06:16
1

Deberías usar pip porque es la herramienta nativa de Python para administrar las instalaciones de paquetes pero no debes instalar las cosas en tu instalación básica de Python. Puede ser un desastre tener que resolver las dependencias de versiones fijas entre múltiples repositorios de software si está instalando todo en su instalación básica de Python en su máquina.

En su lugar, debes instalar virtualenv y luego usarlo para administrar diferentes instalaciones virtuales de Python y todas las Paquetes de paquetes instalados por pip asociados para cada entorno virtual.

Esto le permite pasar de trabajar con, digamos, beautifulsoup 1.x en un repositorio de software a beautifulsoup 2.x en otro repositorio sin tener que vadear el infierno de la administración de dependencias.

    
respondido por el Ian C. 13.10.2017 - 07:02

Lea otras preguntas en las etiquetas