Anaconda : comment éviter l'erreur EnvironmentNotWritableError ?
Avec la plateforme Anaconda, vous pouvez créer des environnements virtuels. Au sein de ces environnements, vous pouvez ensuite travailler sur des programmes scientifiques grâce à un panel large de librairies. Si, lorsque vous souhaitez mettre à jour un environnement, vous rencontrez le message d'erreur "EnvironmentNotWritableError", c'est que vous rencontrez un souci de permission avec la plateforme.
La plateforme n'arrive pas à effectuer la mise à jour car elle n'a pas les droits nécessaires. En principe, il n'y a pas besoin d'être administrateur pour le faire, mais cela peut être nécessaire dans certains cas. Pour résoudre ce problème, si vous travaillez sous Windows, vous devez simplement lancer l'invite de commande d'Anaconda en tant qu'administrateur. Cherchez pour cela l'icône dans votre menu Démarrer, cliquez avec le bouton droit dessus et sélectionnez l'option "Ouvrir en tant qu'administrateur". Si vous utilisez Mac ou Linux, vous devez préfixer la commande de "sudo", ce qui va permettre de lancer la commande en tant qu'administrateur.
//Windows conda update --name root conda //Linux ou Mac sudo conda update --name root conda
Si vous souhaitez que ce ne soit plus le cas pour les prochaines mises à jour, vous pouvez facilement le faire en agissant sur le dossier de la plateforme. Avec Linux ou Mac, utilisez votre terminal avec la commande "chown" pour changer le propriétaire du dossier de la plateforme (Anaconda 2 ou 3 selon la version de Python installée). Ajoutez l'option "-R" pour que ce changement s'applique aux sous-dossiers, et la variable "$USER" qui correspond à l'utilisateur en cours. Avec Windows, rendez-vous dans le dossier "C:\ProgramData\" avec l'explorateur. Cliquez avec le bouton droit sur le dossier d'Anaconda puis choisissez "Propriétés". Cochez les cases d'autorisation pour votre utilisateur, puis cliquez sur "Appliquer" pour que vous n'ayez plus besoin d'être administrateur pour mettre à jour un environnement.
sudo chown -R $USER:$USER