Solución:
No estas haciendo nada malo per se, pero simplemente no tiene mucho sentido correr conda update anaconda
y conda update --all
uno tras otro en el mismo entorno, representan dos configuraciones completamente diferentes.
Actualizar Anaconda
Anaconda es una distribución de Python que agrupa una tonelada de paquetes. Presumiblemente, se realizan muchas pruebas para verificar que todas las versiones y compilaciones del paquete sean compatibles entre sí. Debido a que esto lleva tiempo, el equipo de Anaconda solo lanza nuevas distribuciones (es decir, una nueva anaconda
versión) cada dos meses aproximadamente. Si desea un conjunto estable de paquetes cuya interoperabilidad se haya probado, conda update anaconda
.
Actualizar todo
Entre lanzamientos de Anaconda, todavía se lanzan nuevas versiones de muchos paquetes en el canal de Anaconda, y si ejecuta conda update --all
inevitablemente vas a adelantarte a las versiones especificadas en el anaconda
manojo. Si desea las últimas versiones de paquetes individuales y no le importa trabajar con compilaciones de paquetes que no se hayan probado a fondo para su integración, ejecute conda update --all
.
Vale la pena señalar que las personas que priorizan el acceso a las últimas versiones de los paquetes a menudo parecen preferir Conda Forge, porque tiende a tener lanzamientos de paquetes más frecuentes. Sin embargo, en mi opinión, casi no tiene sentido instalar Anaconda si de todos modos va a cambiar la mayoría de los paquetes a Conda Forge. En su lugar, simplemente instale Miniconda y solo instale lo que desee de Conda Forge al principio.
Actualizar Ninguno
Personalmente, rara vez correré conda update
en un env una vez que haya endurecido los requisitos para un proyecto. Cada vez que actualiza un env, corre el riesgo de romper el código que ya ha escrito. En cambio, Conda hace que sea bastante fácil crear nuevos envs, y si tienen mucha superposición con otros envs, entonces los envs pueden ser bastante livianos debido a que se comparten paquetes entre envs a través de enlaces duros.
Actualizar Conda
La única excepción a todo lo anterior es el conda
package, que es la misma infraestructura que está utilizando para administrar paquetes y envs. Eso, uno debe actualizar como cualquier otro administrador de paquetes (por ejemplo, un pip
o un homebrew
).
Encontré las respuestas en este útil post de Anaconda.
Mantener Anaconda al día
A continuación se muestra una pregunta que se hace con tanta frecuencia que decidí que sería útil publicar una respuesta que explique las diversas formas en que Anaconda puede mantenerse actualizada. La pregunta se hizo originalmente en StackOverflow.
Tengo Anaconda instalado en mi computadora y me gustaría actualizarlo. En Navigator puedo ver que hay varios paquetes individuales que se pueden actualizar, pero también un paquete anaconda que a veces tiene un número de versión y otras veces dice personalizado. ¿Cómo procedo?
La respuesta
Lo que realmente quiere el 95% de la gente En la mayoría de los casos, lo que quiere hacer cuando dice que quiere actualizar Anaconda es ejecutar el comando:
conda update --all
Esto actualizará todos los paquetes en el entorno actual a la última versión; la letra pequeña es que puede usar una versión anterior de algunos paquetes para satisfacer las restricciones de dependencia (a menudo esto no será necesario y cuando sea necesario, el paquete plan solver hará todo lo posible para minimizar el impacto).
Esto debe ejecutarse desde la línea de comandos, y la mejor manera de llegar es desde Anaconda Navigator, luego la pestaña “Entornos”, luego haga clic en el triángulo al lado del entorno raíz, seleccionando “Abrir terminal”:
Esta operación solo actualizará el entorno seleccionado (en este caso, el entorno raíz). Si tiene otros entornos que le gustaría actualizar, puede repetir el proceso anterior, pero primero haga clic en el entorno. Cuando se selecciona, hay un marcador triangular a la derecha (vea la imagen de arriba, paso 3). O, desde la línea de comandos, puede proporcionar el nombre del entorno (-n nombre de entorno) o la ruta (-p / ruta / a / env). Por ejemplo, para actualizar su entorno dspyr desde la captura de pantalla anterior:
conda update -n dspyr --all
Actualizar paquetes individuales
Si solo está interesado en actualizar un paquete individual, simplemente haga clic en la flecha azul o el número de versión azul en Navigator, por ejemplo, para astroid o astropy en la captura de pantalla anterior, y esto etiquetará esos paquetes para una actualización. Cuando haya terminado, debe hacer clic en el botón “Aplicar”:
O desde la línea de comando:
conda update astroid astropy
Actualizar solo los paquetes en la distribución estándar de Anaconda
Si no le importan las versiones de los paquetes y solo desea “el último conjunto de todos los paquetes en la distribución estándar de Anaconda, siempre que funcionen juntos”, entonces debería echar un vistazo a esta esencia.
Por qué actualizar el paquete Anaconda es casi siempre una mala idea
En la mayoría de los casos, la actualización del paquete Anaconda en la lista de paquetes tendrá un resultado sorprendente: en realidad, puede degradar muchos paquetes (de hecho, esto es probable si indica la versión como personalizada). La esencia anterior proporciona detalles.
Aproveche los entornos de conda
Su entorno raíz probablemente no sea un buen lugar para intentar administrar un conjunto exacto de paquetes; será un espacio de trabajo dinámico con nuevos paquetes instalados y paquetes actualizados aleatoriamente. Si necesita un conjunto exacto de paquetes, cree un entorno conda para contenerlos. Gracias a la caché del paquete conda y la forma en que se utiliza la vinculación de archivos, hacer esto suele ser rápido y consume muy poco espacio adicional en el disco. Por ejemplo:
conda create -n myspecialenv -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk
La documentación de conda tiene más detalles y ejemplos.
pip, PyPI y setuptools?
Nada de esto ayudará a actualizar los paquetes que se han instalado desde PyPI a través de pip, o cualquier paquete instalado con la instalación de python setup.py. conda list le dará algunas pistas sobre los paquetes de Python basados en pip que tiene en un entorno, pero no hará nada especial para actualizarlos.
Uso comercial de Anaconda o Anaconda Enterprise
Es prácticamente la misma historia, con la excepción de que es posible que no pueda actualizar el entorno raíz si lo instaló otra persona (por ejemplo, a / opt / anaconda / latest). Si no puede actualizar los entornos que está utilizando, debería poder clonar y luego actualizar:
conda create -n myenv --clone root
conda update -n myenv --all