Podría instalar un paquete python ( por ejemplo , numpy
) en mi Mac, ya sea a través de MacPorts:
port install py-numpy
o vía pip
:
pip install numpy
¿Cuáles son las ventajas y desventajas generales de cada enfoque? ¿Cuándo se debe usar 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 Applepython
vs. MacPort'spython
)? - ¿Importa si tengo varias versiones de
python
instaladas en mi Mac? - ¿Se pueden usar al mismo tiempo?
Espero una respuesta que tenga una breve lista de algunos pros / contras de cada enfoque con una discusión sobre cuándo elegir uno sobre el otro.
matplotlib
.numpy
es solo un ejemplo. Estoy preguntando sobre la instalación de paquetes en general.Respuestas:
Se pueden usar al mismo tiempo, y no debería haber ningún problema entre mezclar los dos (con una advertencia algo grande y un truco ...)
La advertencia
La advertencia es que macports / homebrew y pip no tendrán conocimiento de que cada uno se ha instalado frente al otro.
Entonces, por ejemplo, supongamos que instala Python 3.6 en su Mac. Usted quiere
nltk
, que técnicamente no está disponible para esa versión en Macports, pero está en pip. Entonces lo instalas en pip. Dos meses después, ves que está instalado en Macports y eliges instalarlo. Ahora tiene dos versiones diferentes denltk
en su máquina, así que tenga cuidado .El gotcha
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:fuente
Debe usarlo
pip
porque es la herramienta nativa de Python para administrar las instalaciones de paquetes, pero no debe instalar pip-cosas en su instalación base de Python. Puede ser un desastre tener que resolver las dependencias de versiones fijas entre múltiples repositorios de software si está instalando pip todo en su instalación base de Python en su máquina.En su lugar, debe instalar virtualenv por pip y luego usarlo para administrar diferentes instalaciones virtuales de Python y todos los 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 abeautifulsoup
2.x en otro repositorio sin tener que pasar por el infierno de administración de dependencias.fuente
Acabo de hacer una prueba rápida buscando el mismo paquete usando Homebrew , MacPorts y pip3 :
MacPorts y pip3 tenían el mismo paquete (versión 1.18.1 ), mientras que Homebrew tenía la versión 1.16 .
Al colaborar con otros, es mejor ponerse de acuerdo sobre cómo se configuran sus entornos de desarrollo o comenzará a toparse con anomalías y obtener diferentes resultados de prueba. Por lo tanto, la mejor herramienta es la que todos están de acuerdo ;-)
fuente