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 las ventajas y desventajas generales de cada enfoque? ¿Cuándo se debe utilizar cada enfoque?
numpy
, )?2.x
vs. 3.x
, o Apple's python
vs. MacPort's python
)?python
instaladas en mi Mac?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.
Se pueden usar al mismo tiempo, y no debería haber ningún problema entre mezclar los dos (con una gran advertencia y un problema...)
La advertencia es que macports/homebrew y pip no tendrán conocimiento de cada uno instalado frente al otro.
Entonces, por ejemplo, digamos que instala Python 3.6 en su Mac. You want nltk
, que técnicamente no está disponible para esa versión en Macports, pero está en pip. Así que instalas en pip. Dos meses después, ve que está instalado en Macports y elige instalarlo. Ahora tiene dos versiones diferentes de nltk
en su máquina, así que tenga cuidado .
Si usa pip con Macports, debe asegurarse de que sea el pip que está instalado a través de Macports y asociado con esa versión de python. Entonces, por ejemplo, verá un py35-pip, py36-pip, etc.
Una vez que instale el pip adecuado, use el select
comando de Macports para asegurarse de que esté activado con la versión adecuada de python:
sudo port select
Debe usar pip
porque es la herramienta nativa de Python para administrar las instalaciones de paquetes, pero no debe instalar elementos en su instalación básica de Python. Puede ser un desastre tener que resolver 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, debe pip-install virtualenv y luego usarlo para administrar diferentes instalaciones virtuales de Python y todos los paquetes asociados instalados por pip para cada entorno virtual.
Esto le permite pasar de trabajar con, por ejemplo, beautifulsoup
1.x en un repositorio de software a beautifulsoup
2.x en otro repositorio sin tener que pasar por el infierno de la administración de dependencias.
En general, use un administrador de paquetes a la vez.
Tenga en cuenta que las cosas cambiaron la última vez que realmente miré las configuraciones fue hace 3 años, no creo que haya cambiado mucho, pero pip, etc. gana más funcionalidad a medida que pasa el tiempo.
Macports y Homebrew son administradores generales de paquetes para todos los idiomas. pip es un python puro. También hay conda que es python pero también hace algunas cosas de propósito general. Parece haber ampliado su alcance para cubrir otros idiomas.
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 configurar una versión diferente de python para cada proyecto. por ejemplo, 2.7, 3.7 3.8 en los demás, debe usar pip específico de la versión para las versiones de python.
Otra diferencia está en las partes de un paquete que no tienen dependencias de Python. pip necesita compilar aquellos que los demás tendrán una configuración de compilador más sólida y, por lo general, proporcionarán un binario compilado.
Creo que para instalar pip necesitas arrancar macports o homebrew, la página de pipenv muestra homebrew. Simplemente instale python, pip y quizás pipenv desde este administrador de paquetes.
Ahora uso conda ya que parece proporcionar más y es autónomo. yo
Históricamente, usé macports para el arranque y compilé cualquier biblioteca C, por ejemplo, numpy (algunos de los paquetes matemáticos subyacentes tienen más ajustes que pip) y pip/pipenv para los bits puros de python.
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ían el mismo paquete (versión 1.18.1 ), mientras que Homebrew tenía la versión 1.16 .
Cuando colabore con otros, es mejor ponerse de acuerdo sobre cómo se configuran sus entornos de desarrollo o comenzará a toparse con anomalías y obtendrá resultados de prueba diferentes. Por tanto, la mejor herramienta es aquella en la que todos estéis de acuerdo ;-)
jvriesem
matplotlib
.yoan
jvriesem
numpy
es solo un ejemplo. Estoy preguntando sobre la instalación de paquetes en general.