Solución:
Encuentro que uso conda primero simplemente porque instala el binario, luego intento pip si el paquete no está allí. Por ejemplo, psycopg2 es mucho más fácil de instalar en conda que en pip.
https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/
Pip, que significa Pip Installs Packages, es el administrador de paquetes autorizado oficialmente por Python y se usa más comúnmente para instalar paquetes publicados en el índice de paquetes de Python (PyPI). Tanto pip como PyPI están regidos y respaldados por Python Packaging Authority (PyPA).
En resumen, pip es un administrador de propósito general para paquetes de Python; conda es un gestor de entornos multiplataforma independiente del lenguaje. Para el usuario, la distinción más destacada es probablemente la siguiente: pip instala paquetes de Python en cualquier entorno; conda instala cualquier paquete dentro de entornos conda. Si todo lo que está haciendo es instalar paquetes de Python dentro de un entorno aislado, conda y pip + virtualenv son en su mayoría intercambiables, modulo alguna diferencia en el manejo de dependencias y la disponibilidad de paquetes. Por entorno aislado me refiero a un conda-env o virtualenv, en el que puede instalar paquetes sin modificar la instalación de Python de su sistema.
Si nos centramos solo en la instalación de paquetes de Python, conda y pip sirven a diferentes audiencias y diferentes propósitos. Si desea, por ejemplo, administrar paquetes de Python dentro de una instalación de Python del sistema existente, conda no puede ayudarlo: por diseño, solo puede instalar paquetes dentro de entornos conda. Si desea, por ejemplo, trabajar con los muchos paquetes de Python que dependen de dependencias externas (NumPy, SciPy y Matplotlib son ejemplos comunes), mientras rastrea esas dependencias de una manera significativa, pip no puede ayudarlo: por diseño, administra los paquetes de Python y solo los paquetes de Python.
Conda y pip no son competidores, sino herramientas enfocadas a diferentes grupos de usuarios y patrones de uso.
Nota: Las siguientes recomendaciones ahora forman parte de la documentación oficial.
“¿Cuál es la sabiduría actual (2019) sobre cuándo instalar algo con
conda
vs.pip
?“
Jonathan Helmus de Anaconda Inc resume esto bastante bien en la publicación “Uso de Pip en un entorno Conda. “Aquí hay un extracto de la recomendación final de mejores prácticas:
Lista de verificación de mejores prácticas
Usar
pip
Solo despuésconda
- instalar tantos requisitos como sea posible con
conda
, luego usapip
- pip debe ejecutarse con
--upgrade-strategy "only-if-needed"
(el valor por defecto)- No utilice
pip
con el--user
argumento, evitar todas las instalaciones de “usuarios”Utilice entornos Conda para el aislamiento
- crear un entorno Conda para aislar cualquier cambio
pip
marcas- los entornos ocupan poco espacio gracias a los enlaces duros
- Se debe tener cuidado para evitar correr
pip
en el raíz [base] medio ambienteRecrear el entorno si se necesitan cambios
- una vez
pip
ha sido usadoconda
no se dará cuenta de los cambios- para instalar paquetes adicionales de Conda, es mejor recrear el entorno
Tienda
conda
ypip
requisitos en archivos de texto
- los requisitos del paquete se pueden pasar a
conda
mediante el--file
argumentopip
acepta una lista de paquetes de Python con-r
o--requirements
conda env
exportará o creará entornos basados en un archivo conconda
ypip
requisitos
Esto es lo que hago:
- Activa tu env virutal conda
- Use pip para instalar en su entorno virtual
- Si tiene problemas de compatibilidad, use conda
Recientemente me encontré con esto cuando numpy / matplotlib se asustó y usé la compilación conda para resolver el problema.