Conda
y conda-forge
son ambos administradores de paquetes de Python. ¿Cuál es la opción adecuada cuando existe un paquete en ambos repositorios? Django, por ejemplo, se puede instalar con cualquiera de los dos, pero la diferencia entre ambos es de varias dependencias (conda-forge tiene muchas más). No hay explicación para estas diferencias, ni siquiera un simple LÉAME.
¿Cuál debería ser usado? ¿Conda o conda-forge? ¿Importa?
conda
es un administrador de paquetes yconda-forge
es un canal. Tal vez era cierto cuando se hizo esta pregunta?Respuestas:
La respuesta corta es que, en mi experiencia en general, no importa cuál uses.
La respuesta larga:
Entonces,
conda-forge
es un canal adicional desde el cual se pueden instalar paquetes. En este sentido, no es más especial que el canal predeterminado, o cualquiera de los otros cientos (¿miles?) De canales en los que la gente ha publicado paquetes. Puede agregar su propio canal si se registra en https://anaconda.org y carga sus propios paquetes de Conda.Aquí tenemos que hacer la distinción, que creo que no está claro por su formulación en la pregunta, entre
conda
el administrador de paquetes multiplataforma yconda-forge
el canal de paquetes. Anaconda Inc. (anteriormente Continuum IO), los principales desarrolladores delconda
software, también mantienen un canal separado de paquetes, que es el valor predeterminado cuando escribeconda install packagename
sin cambiar ninguna opción.Hay tres formas de cambiar las opciones para los canales. Los dos primeros se realizan cada vez que instala un paquete y el último es persistente. El primero es especificar un canal cada vez que instala un paquete:
Por supuesto, el paquete tiene que existir en ese canal. De esta manera se instalará
packagename
y todas sus dependencias desome-channel
. Alternativamente, puede especificar:El paquete todavía tiene que existir
some-channel
, pero ahora, solopackagename
se extraerá de élsome-channel
. Se buscará cualquier otro paquete que sea necesario para satisfacer las dependencias de su lista predeterminada de canales.Para ver la configuración de su canal, puede escribir:
Puede controlar el orden en que se buscan los canales
conda config
. Puedes escribir:para agregar el canal
some-channel
al principio de lachannels
lista de configuración. Esto le dasome-channel
la más alta prioridad. La prioridad determina ( en parte ) qué canal se selecciona cuando más de un canal tiene un paquete en particular. Para agregar el canal al final de la lista y darle la prioridad más baja, escribaSi desea eliminar el canal que agregó, puede hacerlo escribiendo
Ver
Para más opciones.
Dicho todo esto, hay cuatro razones principales para usar el
conda-forge
canal en lugar deldefaults
canal mantenido por Anaconda:conda-forge
pueden estar más actualizados que los deldefaults
canal.conda-forge
canal que no están disponibles endefaults
openblas
(desdeconda-forge
) en lugar demkl
(desdedefaults
).fuente
conda install -c some-channel packagename
forma de escribir el comandomkl
más rápido queopenblas
?Anaconda ha cambiado sus Términos de servicio para que los "grandes usuarios comerciales" tengan que pagar, lo que no incluye el
conda-forge
canal.Probablemente quiera seguir
conda-forge
si no quiere pagar por el uso. Como se indica en los documentos :También puede usar miniforge, que tiene
conda-forge
como canal predeterminado y admite plataformas ppc64le y aarch64, así como las otras plataformas habituales.fuente
El canal conda-forge es donde puede encontrar paquetes que se han creado para conda pero que aún no forman parte de la distribución oficial de Anaconda.
En general, puede usar cualquiera de ellos.
fuente
Hay algunas bibliotecas de Python que no puede instalar de manera simple
conda install
ya que su canal no está disponible a menos que aplique conda-forge. Desde mi experiencia, pip es más genérico para buscar en diferentes fuentes de canales que conda. Por ejemplo, si desea instalarpython-constraint
, puede hacerlo a través depip install
pero instalarlo a través de ** cond **. tienes que especificar el canal -conda-forge
.pero no
fuente
conda update --all
no actualizarán el paquete instalado de pip