378 votes

Comment puis-je mettre à jour Anaconda?

J'ai Anaconda installé sur mon ordinateur et je voudrais le mettre à jour. Dans Navigator, je vois qu'il y a plusieurs packages individuels qui peuvent être mis à jour, mais aussi un anaconda package qui parfois a un numéro de version et parfois dit custom. Comment dois-je procéder?

entrez la description de l'image ici

6 votes

La plupart des réponses suggèrent conda update [-n root] -v anaconda, mais cela propose de DOWNGRADE mon python: 3.7.0-hc167b69_0 --> 3.6.6-hc167b69_0. Semble très cassé.

559voto

IanSR Points 3158

root est l'ancien nom (avant conda 4.4) pour l'environnement principal; après conda 4.4, il a été renommé en base. source

Ce que 95% des gens veulent réellement

Dans la plupart des cas, ce que vous voulez faire lorsque vous dites que vous voulez mettre à jour Anaconda est d'exécuter la commande :

conda update --all

(Mais cela devrait être précédé de conda update -n base conda ou simplement conda update conda pour avoir la dernière version de conda installée)

Ceci mettra à jour tous les packages dans l'environnement actuel à la dernière version -- en précisant que cela peut utiliser une version plus ancienne de certains packages pour satisfaire les contraintes de dépendance (il n'est souvent pas nécessaire de le faire et lorsque c'est nécessaire, le solveur de plan de packages fera de son mieux pour minimiser l'impact).

Cela doit être exécuté à partir de la ligne de commande, et la meilleure façon d'y accéder est depuis Anaconda Navigator, puis l'onglet "Environnements", puis cliquez sur le triangle à côté de l'environnement base, en choisissant "Ouvrir le terminal" :

Ouvrir le terminal depuis Navigator

Cette opération mettra à jour uniquement l'environnement sélectionné (dans ce cas, l'environnement base). Si vous avez d'autres environnements que vous souhaitez mettre à jour, vous pouvez répéter le processus ci-dessus, mais d'abord cliquez sur l'environnement. Lorsqu'il est sélectionné, il y a un indicateur triangulaire sur la droite (voir l'image ci-dessus, étape 3). Ou depuis la ligne de commande, vous pouvez fournir le nom de l'environnement (-n nom_env) ou le chemin (-p /chemin/vers/env), par exemple pour mettre à jour votre environnement dspyr à partir de la capture d'écran ci-dessus :

conda update -n dspyr --all

Mettre à jour des packages individuels

Si vous êtes seulement intéressé à mettre à jour un package individuel, il suffit de cliquer sur la flèche bleue ou le numéro de version bleu dans Navigator, par exemple pour astroid ou astropy dans la capture d'écran ci-dessus, et cela marquera ces packages pour une mise à jour. Lorsque vous avez terminé, vous devez cliquer sur le bouton "Appliquer" :

Appliquer pour mettre à jour des packages individuels

Ou depuis la ligne de commande :

conda update astroid astropy

Mettre à jour uniquement les packages dans la Distribution standard Anaconda

Si vous ne vous souciez pas des versions des packages et que vous voulez simplement "le dernier ensemble de tous les packages dans la Distribution standard Anaconda, tant qu'ils fonctionnent ensemble", alors vous devriez jeter un œil à ce gist.

Pourquoi mettre à jour le package Anaconda est presque toujours une mauvaise idée

Dans la plupart des cas, mettre à jour le package Anaconda dans la liste des packages aura un résultat surprenant : vous pouvez en fait revenir à une version antérieure de nombreux packages (en fait, c'est probable si la version est indiquée comme custom). Le gist ci-dessus fournit des détails.

Tirer parti des environnements conda

Votre environnement base n'est probablement pas un bon endroit pour essayer de gérer un ensemble exact de packages : il s'agira d'un espace de travail dynamique avec de nouveaux packages installés et des packages mis à jour de manière aléatoire. Si vous avez besoin d'un ensemble exact de packages, créez alors un environnement conda pour les contenir. Grâce à la cache de packages conda et à la manière dont le lien de fichiers est utilisé, cela est généralement i) rapide et ii) consomme très peu d'espace disque supplémentaire. Par exemple :

conda create -n mo_env_special -c bioconda -c conda-forge python=3.5 pandas beautifulsoup seaborn nltk

La documentation de conda a plus de détails et d'exemples.

pip, PyPI et setuptools ?

Rien de tout cela ne vous aidera à mettre à jour les packages installés à partir de PyPI via pip ou tous les packages installés à l'aide de python setup.py install. La commande conda list vous donnera des indications sur les packages Python basés sur pip que vous avez dans un environnement, mais elle ne fera rien de spécial pour les mettre à jour.

Utilisation commerciale d'Anaconda ou Anaconda Enterprise

C'est à peu près la même histoire, à l'exception que vous ne pourrez peut-être pas mettre à jour l'environnement base s'il a été installé par quelqu'un d'autre (disons à /opt/anaconda/latest). Si vous n'êtes pas en mesure de mettre à jour les environnements que vous utilisez, vous devriez être en mesure de les cloner puis de les mettre à jour :

conda create -n mon_env --clone base
conda update -n mon_env --all

6 votes

@MattSchmatt assurez-vous de faire également conda update conda. Conda a considérablement évolué au cours de l'année écoulée, et en particulier, nous avons eu une version fin septembre 2017 qui a introduit de nombreuses améliorations. Si conda update --all casse des choses (ce qui était presque certain historiquement), alors il s'agit d'un bogue que vous devriez signaler au traqueur de problèmes GitHub de conda - aujourd'hui, cette opération ne devrait pas casser de composants existants (avec la condition que conda doit être à jour).

8 votes

J'ai dû faire conda update -n root conda au lieu de ce qui est mentionné ci-dessus pour que ça fonctionne.

21 votes

La commande conda update --all n'est pas ce que veulent 95% des gens. Cela peut conduire à un environnement instable. La réponse de l'utilisateur3056882 est plus sûre.

143voto

Cardin Points 327

Si vous essayez de mettre à jour votre version d'Anaconda vers une nouvelle, vous remarquerez que lancer le nouvel installateur ne fonctionnerait pas, car il se plaint que le répertoire d'installation n'est pas vide.

Vous devriez donc utiliser conda pour la mise à jour tel que détaillé par la documentation officielle:

conda update conda
conda update anaconda

Sous Windows, si vous avez effectué une installation "pour tous les utilisateurs", il peut être nécessaire d'exécuter à partir d'une invite Anaconda avec des privilèges d'administrateur.

Cliquez simplement avec le bouton droit sur Anaconda Prompt dans le menu Démarrer

Cela évite l'erreur:

ERROR conda.core.link:_execute(502): Une erreur s'est produite lors de la désinstallation du package 'defaults::conda-4.5.4-py36_0'. PermissionError(13, 'Accès refusé')

0 votes

Les documents disent conda install anaconda.

0 votes

Le lien vers la documentation officielle que vous donnez indique que vous devez mettre à jour avec conda update conda suivi de conda install anaconda=NuméroVersion, et non avec conda update anaconda. Voir la autre réponse à cette même question. Ou est-ce que cela installe automatiquement la version la plus récente si vous omettez le NuméroVersion, et est-ce que install = update?

0 votes

Vérifiez ceci. Après avoir mis à jour avec conda install anaconda=2021.05 (la version de méta-package la plus récente disponible au moment du test), j'ai mis à jour à nouveau avec conda update anaconda de cette réponse. Et ce dernier installerait 13 nouveaux packages et mettrait à jour environ 100 packages. Seul anaconda lui-même est "downgradé", mais cela est seulement appelé ainsi car il change vers une version personnalisée : Les paquets suivants seront DOWNGRADED: anaconda 2021.05-py38_0 --> custom-py38_1. Par conséquent, conda update anaconda vous donne la collection de packages la plus récente. conda install anaconda en installe moins.

59voto

H.Latte Points 455

Ouvrez "Invite de commandes ou de conda" et exécutez :

conda update conda
conda update anaconda

Il est conseillé d'exécuter ces deux commandes deux fois (l'une après l'autre) pour garantir que tous les fichiers de base sont mis à jour.

Cela devrait vous remettre sur les dernières 'versions', qui contiennent des packages sélectionnés par les personnes de Continuum pour bien fonctionner ensemble.

Si vous souhaitez obtenir la dernière version de chaque package (cela peut entraîner un environnement instable) :

conda update --all 

En espérant que cela vous aidera.

Sources:

13 votes

Si vous préférez un environnement stable plutôt que d'avoir la dernière version de chaque package, alors sautez l'étape 4. conda update anaconda devrait vous ramener à l'une des 'versions', qui contient des packages sélectionnés par les personnes de Continuum pour bien fonctionner ensemble.

0 votes

Merci rudolfbyker. J'ai modifié la réponse pour refléter votre commentaire.

0 votes

Si vous rencontrez une erreur "package not installed", essayez conda install anaconda.

11voto

Full Array Points 383

Voici la meilleure pratique (à mon humble avis). Sélectionner ces quatre packages mettra également à jour toutes les autres dépendances vers les versions appropriées qui vous aideront à maintenir la cohérence de votre environnement. Ce dernier est un problème courant que d'autres ont mentionné dans des réponses précédentes. Cette solution ne nécessite pas le terminal.

Mise à jour et mise à niveau de Anaconda 3 ou Anaconda 2 meilleure pratique

8voto

InLaw Points 578

Si vous avez du mal à passer de par exemple de 3.3.x à 4.x (la mise à jour conda "ne fonctionne pas" pour passer à la version suivante), essayez de le faire de manière plus précise comme ceci :

conda install conda=4.0 (ou conda install anaconda=4.0)

https://www.anaconda.com/blog/developer-blog/anaconda-4-release/

Vous devez savoir ce que vous faites, car conda pourrait se casser en raison de l'installation forcée. Si vous souhaitez obtenir plus de flexibilité/sécurité, vous pouvez utiliser un gestionnaire de paquets comme nix(-pkgs) [avec nix-shell]/NixOS.

0 votes

Peut-être, mais ne considéreriez-vous pas cela complètement défectueux, comme un bricolage?

0 votes

La version "continuité" est une norme par exemple en développement (web). Comme toujours, si vous voulez que tout soit aligné et réévalué, vous devriez tout reconstruire avec les versions mises à jour. En général, une "mise à jour conda --all" avec des mises à jour de fichier épinglé devrait fonctionner correctement aussi (faites attention aux installations pip supplémentaires!).

2 votes

Lorsque nous devons manuellement indiquer à l'outil de mise à jour la version spécifique à laquelle se mettre à jour, alors ce n'est plus un outil de mise à jour, juste un programme d'installation défectueux avec une jolie interface graphique. En général, conda update --all casse tout, comme le dit leur FAQ, et dans mon cas, il propose joyeusement de rétrograder ma version de python de 3.7.0 à 3.6.6 (bien qu'il sache que la version 3.7.1 est disponible)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X