16 votos

Uso de pip vs. MacPorts para instalar paquetes de Python

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

port install py-numpy

o a través de pip :

pip install numpy

¿Cuáles son los pros y los contras generales de cada enfoque? ¿Cuándo se debe utilizar cada enfoque?

  • ¿Cuándo debo 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 esté utilizando ( 2.x contra. 3.x o el de Apple python frente a la de MacPort python )?
  • ¿Importa si tengo varias versiones de python instalado en mi Mac?
  • ¿Pueden utilizarse simultáneamente?

Espero una respuesta que contenga una breve lista de los pros y los contras de cada enfoque y un debate sobre cuándo elegir uno en lugar de otro.

6voto

shsteimer Puntos 8749

Debe utilizar pip porque es la herramienta nativa de Python para gestionar las instalaciones de paquetes pero no deberías instalar cosas con pip en tu instalación base de Python. Puede ser un lío tener que ordenar las dependencias de versiones fijas entre múltiples repositorios de software si estás instalando todo con pip en tu instalación base de Python en tu máquina.

En su lugar, debes instalar pip-install virtualenv y luego utilizarlo para gestionar diferentes instalaciones virtuales de Python y todos los paquetes asociados instalados por pip para cada entorno virtual.

Esto le permite pasar de trabajar, por ejemplo, con beautifulsoup 1.x en un repositorio de software para beautifulsoup 2.x en otro repositorio sin tener que pasar por el infierno de la gestión de dependencias.

5voto

Rob M. Puntos 62

Se pueden utilizar simultáneamente, y no debería haber ningún problema entre la mezcla de los dos (con una advertencia un poco grande y un gotcha ...)

La advertencia

La advertencia es que macports/homebrew y pip no tendrán conciencia de que cada uno tiene instalado el otro.

Así, por ejemplo, digamos que instalas Python 3.6 en tu Mac. Usted quiere nltk , que técnicamente no está disponible para esa versión en Macports, pero sí en pip. Así que lo instalas en pip. Dos meses después, ves que está instalado en Macports y eliges instalarlo. Ahora tienes dos versiones diferentes de nltk en su máquina, así que advertencia a los interesados .

El Gotcha

Si usas pip con Macports, tienes que asegurarte de que es el pip que se instala a través de Macports y que está asociado a esa versión de Python. Así, por ejemplo, verás un py35-pip, py36-pip, etc.

Una vez que se instala el pip adecuado, se utiliza la herramienta de Macports select para asegurarse de que está activado con la versión apropiada de Python:

sudo port select

1voto

Feroc Puntos 98

Acabo de hacer una prueba rápida buscando el mismo paquete usando Homebrew , MacPorts y pip3 :

brew search numpy
sudo port search --name --glob '*numpy'
pip3 search numpy

MacPorts y pip3 tenía el mismo paquete (versión 1.18.1 ), mientras que Homebrew tenía versión 1.16 .

Cuando se colabora con otros, lo mejor es ponerse de acuerdo sobre cómo se configuran los entornos de desarrollo o se empezarán a encontrar anomalías y a obtener resultados de pruebas diferentes. Por lo tanto, la mejor herramienta es aquella en la que todos están de acuerdo ;-)

1voto

yoliho Puntos 340

En general, utilice un gestor de paquetes a la vez.

Tenga en cuenta las cosas cambian la última vez que realmente miré setiups fue hace 3 años, no creo que mucho ha cambiado, pero pip etc gana más funcionalidad a medida que pasa el tiempo.

Macports y Homebrew son gestores de paquetes generales para todos los idiomas. Pip es uno puramente de Python. También existe conda que es Python pero también hace algunas cosas de propósito general. Parece que ha ampliado su alcance para cubrir otros lenguajes.

pip (con pipenv ) y conda también proporcionan entornos virtuales de Python que básicamente permiten diferentes conjuntos de bibliotecas para cada proyecto y le permite establecer una versión diferente de Python para cada proyecto. por ejemplo, 2.7, 3.7 3.8 en los otros necesita usar pip específico de la versión para las versiones de Python.

Otra diferencia está en las partes de un paquete que tienen dependencias que no son de Python. pip necesita compilar aquellas que las otras tendrán una configuración de compilador más robusta y normalmente proporcionarán un binario compilado.

Creo que para instalar pip necesitas arrancar desde macports o homebrew, la página de pipenv muestra homebrew. Solo instala Python, pip y tal vez pipenv desde este gestor de paquetes.

Ahora utilizo conda, ya que parece que proporciona más y es autónomo. I

Históricamente he utilizado macports para el bootstrap y compilar cualquier biblioteca C, por ejemplo, numpy (algunos de los paquetes de matemáticas subyacentes tienen más ajuste que pip) y pip/pipenv para los bits de Python puro.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X