48
votes

La mise à jour d'Anaconda échoue: Erreur d'environnement non accessible en écriture

J'essaie de mettre à jour Anaconda et ses packages à l'aide de conda update --name root conda , mais cela échoue à chaque fois.

Message d'erreur: EnvironmentNotWritableError: l'utilisateur actuel ne dispose pas d'autorisations d'écriture sur l'environnement cible. emplacement de l'environnement: C: \ ProgramData \ Anaconda3

Emplacement de l'environnement: C:\ProgramData\Anaconda3 . J'ai remplacé la root par la base , j'obtiens toujours la même erreur.

De l'aide?


3 commentaires

Peut-être pourriez-vous donner plus de détails sur votre environnement et les versions de logiciel qui pourraient être pertinentes pour la question pour aider quiconque pourrait être en mesure de vous aider.


De plus, dans les versions plus récentes de conda (depuis environ 1,5 ans), l'environnement principal est appelé base , pas root .


emplacement de l'environnement: C: \ ProgramData \ Anaconda3. J'ai remplacé la racine par la base. J'ai la même erreur


14 Réponses :


57
votes

démarrez votre invite de commande avec exécuter en tant qu'administrateur


5 commentaires

Ce n'est pas correct. Au moins sous Linux / Mac OS, conda n'est pas censé exiger des droits de super utilisateur.


Ça a bien marché pour moi. Pouvez-vous expliquer pourquoi votre solution fonctionne?


Cela a fonctionné pour moi sur Windows 10. Je n'ai pas essayé sur Mac, mais j'essaierais d'exécuter la commande en tant que sudo conda update --name root conda.


@hamedbaziyad oui, cela pourrait être considéré comme une solution de contournement et pourrait résoudre votre problème, mais exécuter conda avec des droits de super utilisateur ne devrait pas être nécessaire dans de nombreux cas et n'est probablement pas la meilleure chose à faire dans ces cas. L'exécution de commandes avec des droits de super-utilisateur peut causer plus de dommages que sans, il est donc toujours préférable d'éviter les droits de super-utilisateur. De plus, les utilisateurs peuvent ne pas avoir de droits de super utilisateur mais souhaitent tout de même mettre à jour conda.


Cela a fonctionné pour moi. Ce n'est qu'après avoir fait cela, que je peux obtenir mon Spyder IDE, mis à jour avec la dernière version ...



26
votes

Sous Windows, recherchez Anaconda PowerShell Prompt . Cliquez avec le bouton droit sur le programme et sélectionnez Exécuter en tant qu'administrateur . Dans l'invite de commande, exécutez la commande suivante:

conda update -n base -c defaults conda

Votre Anaconda devrait maintenant se mettre à jour sans erreurs liées à l'administrateur.


0 commentaires

19
votes

Si vous obtenez cette erreur sous Linux lors de l'exécution de conda en utilisant sudo, vous pourriez souffrir du bogue # 7267 :

Lors de la connexion en tant qu'utilisateur non root via sudo, par exemple en:

sudo chown -R username /path/to/anaconda3

conda semble supposer qu'il est exécuté en tant que root et génère une erreur.

La seule solution de contournement connue semble être: Ajoutez la ligne suivante à votre ~/.bashrc :

unset SUDO_UID SUDO_GID SUDO_USER

... ou annulez les variables ENV en exécutant la ligne d'une manière différente avant d'exécuter conda.

Si vous avez installé par erreur anaconda / miniconda en tant que root / via sudo, cela peut également conduire à la même erreur, alors vous voudrez peut-être faire ce qui suit:

sudo -u myuser -i

Testé avec conda 4.6.14.


0 commentaires

36
votes

Si vous rencontrez ce problème sous Linux, l'une des raisons courantes peut être que le dossier "anaconda3" ou "anaconda2" est propriétaire root. Cela empêche les autres utilisateurs d'écrire dans le dossier. Cela peut être résolu en changeant la propriété du dossier de racine à "USER" en exécutant la commande:

sudo chown -R $USER:$USER anaconda3

ou sudo chown -R $USER:$USER <path of anaconda 3/2 folder>

Remarque: comment déterminer si un dossier est propriétaire root? - Il y aura un symbole de cadenas dans le coin supérieur droit du dossier respectif. Ou faites un clic droit sur le dossier-> propriétés et vous pourrez voir les détails du propriétaire

L'argument -R permet à $ USER d'accéder à tous les dossiers et fichiers du dossier anaconda3 ou anaconda2 ou à tout dossier respectif. Il signifie «récursif».


3 commentaires

A travaillé pour moi. Cependant, je pense que vous devez également changer la propriété de ~ / .conda car il contient, par exemple, environnements.txt qui doit être mis à jour.


sudo chown -R $ USER: $ GROUP <chemin du dossier anaconda 3/2>


Ne fonctionne pas dans un environnement multi-utilisateurs :)



3
votes

Comme alternative, je suggère de regarder votre fichier de configuration conda.

Raison

Parfois, pour créer un env virtuel à un emplacement spécifié autre que le chemin prédéfini à ~/anaconda3/envs nous ajoutons le fichier de configuration conda en utilisant: conda config --append envs_dirs /path/to/envsenvs_dirs est une fonction spécifiée dans config pour allouer différents chemins où conda peut trouver vos envs virtuels. La suppression d'un chemin récemment ajouté dans ce fichier de configuration peut résoudre le problème.

Solution

$:> conda config --remove envs_dirs /home/some_recent_path

Notez la valeur spécifiant un répertoire différent autre que l'emplacement prédéfini et supprimez- le en utilisant

$:> conda config --show envs_dirs

    envs_dirs:
    - /home/some_recent_path    # remove this
    - /home/.../anaconda3/envs

Maintenant, le fichier de configuration envs_dirs est défini sur l'emplacement par défaut d'envs. Essayez de créer un nouvel environnement maintenant.


0 commentaires

0
votes

La suppression du fichier .condarc (par ex ./root/.condarc) dans le répertoire personnel de l'utilisateur avant l'installation a résolu le problème.


0 commentaires

0
votes

Dans mon cas, CONDA_ENVS_PATH a été supprimé, donc j'avais NotWritableError. J'ai donc corrigé l'erreur en spécifiant

CONDA_ENVS_PATH=~/my-envs:/opt/anaconda/envs

dans le fichier .bashrc


0 commentaires

5
votes

J'ai eu le même problème et l'environnement de base était dans C:\ProgramData\Anaconda3 . C'est le cas, lorsqu'Anaconda est installé for all users .

En guise de solution , j'ai réinstallé Anaconda just for me et maintenant l'environnement de base est dans \AppData\Local\Continuum\anaconda3 . Cela peut maintenant être mis à jour via la mise à jour conda update sans privilèges d'administrateur.


0 commentaires

0
votes

J'ai également souffert du même problème. J'ai résolu le problème en réinstallant anaconda (lors de l'installation à ce moment, j'ai sélectionné "juste pour moi" comme utilisateur) et mon problème a été résolu.


0 commentaires

9
votes

J'avais installé anaconda via le programme d'installation du système sur OS X dans le passé, ce qui créait un ~/.conda/environments.txt appartenant à root. Conda n'a pas pu modifier ce fichier, d'où l'erreur.

Pour résoudre ce problème, j'ai changé la propriété de ce répertoire et de ce fichier en mon nom d'utilisateur:

sudo chown -R $USER ~/.conda


1 commentaires

Merci, la seule chose qui a fonctionné pour moi



3
votes

cette ligne de code sur votre terminal résout le problème

$ sudo chown -R $USER:$USER anaconda 3


1 commentaires

Pour les utilisateurs Linux uniquement



7
votes

Ouvrez ce dossier "C: \ ProgramData \" et faites un clic droit sur "\ Anaconda3". allez dans propriétés -> sécurité et cochez toutes les cases pour chaque utilisateur. Cela a fonctionné pour moi.


1 commentaires

A travaillé pour moi aussi en utilisant miniconda



1
votes

MISE À JOUR CONDA - PAS DE PROBLÈME D'ACCÈS EN ÉCRITURE ## FIXED ##

SOLUTION SIMPLE:

  1. Appuyez sur le bouton de combinaison Windows + S et tapez "cmd" dedans.
  2. Faites un clic droit sur le résultat de l'application d' invite de commande qui apparaît et cliquez sur "Exécuter en tant qu'administrateur"
  3. Maintenant, dans la fenêtre noire qui est ouverte (c'est-à-dire votre invite de commande), copiez et collez ce qui suit pour vérifier votre version: conda --version
  4. Si vous voulez la dernière mise à jour, mettez à jour Conda en exécutant la commande de mise à jour en collant ce qui suit et en cliquant sur Entrée dans l'invite de commande (fenêtre noire): conda update conda
  5. Si une version plus récente est disponible, elle vous demandera un oui / non pour installer la mise à jour. Tapez "oui", puis appuyez sur Entrée pour mettre à jour.

0 commentaires

0
votes

Sur Windows en général, l'exécution de l'invite de commande avec l'administrateur fonctionne. Mais si vous ne voulez pas faire cela à chaque fois, spécifiez les autorisations de contrôle total de votre utilisateur (ou simplement de tous les utilisateurs) sur le répertoire Anaconda3. Sachez que le spécifier pour tous les utilisateurs permet aux autres utilisateurs d'installer leurs propres packages et de modifier le contenu.

Exemple d'autorisations


0 commentaires