web-dev-qa-db-fra.com

Python - Dépannage de l'installation PIP - PermissionError: [WinError 5] L'accès est refusé.

L'erreur suivante s'affiche lorsque j'utilise PIP pour installer de nouveaux packages ou même mettre à niveau pip lui-même vers la dernière version. J'utilise pip sur une machine Windows 8.1 avec Python 3.4.

Le message me dit que je n'ai pas de permission administrative sur les fichiers (mon compte est un compte d'administrateur).

J'apprécierais vos idées sur la façon de résoudre ce problème, car cela nous empêche d’installer des paquets et de progresser avec Python.

Message d'erreur:

Installing collected packages: pip
  Found existing installation: pip 6.0.8
    Uninstalling pip-6.0.8:
      Removing file or directory c:\program files (x86)\python\python34\lib\site-packages\pip-6.0.8.dist-info\description.rst
      Cleaning up...
Exception:
Traceback (most recent call last):
  File "C:\Program Files (x86)\Python\Python34\lib\shutil.py", line 523, in move
    os.rename(src, real_dst)
PermissionError: [WinError 5] Access is denied: 'c:\\program files (x86)\\python\\python34\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst' -> 'C:\\Users\\User\\AppData\\Local\\Temp\\pip-uze_sc4k-uninstall\\program files (x86)\\python\\python34\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\basecommand.py", line 232, in main
    status = self.run(options, args)
  File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\commands\install.py", line 347, in run
    root=options.root_path,
  File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\req\req_set.py", line 543, in install
    requirement.uninstall(auto_confirm=True)
  File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\req\req_install.py", line 667, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\req\req_uninstall.py", line 126, in remove
    renames(path, new_path)
  File "C:\Program Files (x86)\Python\Python34\lib\site-packages\pip\utils\__init__.py", line 316, in renames
    shutil.move(old, new)
  File "C:\Program Files (x86)\Python\Python34\lib\shutil.py", line 536, in move
    os.unlink(src)
PermissionError: [WinError 5] Access is denied: 'c:\\program files (x86)\\python\\python34\\lib\\site-packages\\pip-6.0.8.dist-info\\description.rst'
60
Dave Mansfield

E: Etant donné que cette réponse semble avoir gagné en popularité, je vais ajouter: faire les choses à l'échelle mondiale n'est généralement pas une bonne idée. Demandez-vous si vous devriez plutôt utiliser un environnement de projet, par exemple. avec virtualenv.


Pour ceux qui peuvent rencontrer le même problème:

Exécutez la commande Invite en tant qu'administrateur. Avoir des autorisations d'administrateur dans le compte ne suffit pas toujours. Sous Windows, les opérations peuvent être exécutées en tant qu'administrateur en cliquant avec le bouton droit de la souris sur l'exécutable et en sélectionnant "Exécuter en tant qu'administrateur". Donc, tapez "cmd" dans le menu Démarrer, cliquez avec le bouton droit de la souris sur cmd.exe et exécutez-le en tant qu'administrateur.

68
Roope

Je sais que ma réponse serait étrange, mais c'est ce que je viens de vivre.

J'ai eu la même erreur lors de l'installation du paquet tensorflow et j'ai essayé la même chose en ouvrant powershell dans Windows en tant qu'administrateur, mais en vain.

Plus tard, j'ai découvert que j'utilisais déjà numpy dans l'un des scripts python d'une session active python. J'ai donc fermé le Spyder IDE et essayé d'installer le paquet tensorflow en exécutant powershell en tant qu'administrateur et cela a fonctionné.

J'espère que cela aidera quelqu'un d'autre comme moi qui ouvrira ce post plus ancien mais utile dans les prochains jours

45
JKC

Même si vous exécutez à partir de l'administrateur, le problème ne sera peut-être pas résolu si le pip est installé dans un autre espace utilisateur. Cela est dû au fait que l'administrateur ne possède pas le répertoire de l'espace utilisateur d'un autre utilisateur et ne peut donc pas voir (aller à l'intérieur) à l'intérieur du répertoire appartenant à quelqu'un. Voici une solution exacte.

python -m pip install -U pip --user //It solves in Windows. Note: You should provide --user option

pip install -U pip --user //Linux, and MacOS
14
Uddhav Gautam

Pour ceux qui rencontrent ce problème et exécuter la commande Invite en tant qu'administrateur ne fonctionne pas cela a fonctionné pour moi:

Comme j’avais déjà essayé une première fois sans exécuter l’invite cmd en tant qu’administrateur, dans mon dossier c:\Utilisateurs\"UTILISATEUR"\AppData\Local\Temp, je trouvais qu’il essayait d’exécuter des fichiers à partir du même pip-u2e7e0ad-uninstall dossier. La suppression de ce dossier du dossier Temp et la nouvelle tentative d'installation ont résolu le problème.

6
Michael Martin

N'utilisez pas la commande Invite dans l'EDI. Exécutez la commande Invite à partir de Windows en tant qu'administrateur. Je suis sûr que cela résoudra le problème. Sinon, désinstallez pip et réinstallez directement le dernier.

6
Santa

À partir de la mise à niveau du pip 7.x.x vers la version 8.x.x sur Python 3.4 (prise en charge de * .whl).

Mauvaise commande: pip install --upgrade pip (impossible de déplacer pip.exe dans un dossier temporaire, autorisation non autorisée)

Variante OK: py -3.4 -m pip install --upgrade pip (ne pas exécuter pip.exe)

5
Valerij

J'ai eu le même problème avec Anaconda sur Windows. Il semble qu'il y ait un problème avec l'antivirus McAfee. Si vous le désactivez lors de l'exécution des mises à jour ou des installations, cela vous permet d'exécuter correctement l'installation.

5
Netzsooc

Après avoir vu

You are using pip version 9.0.1, however version 10.0.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

J'ai couru

pip install -U pip

et frapper cette erreur

PermissionError: [WinError 5]

J'ai réessayé et j'ai

pip install -U pip
ERROR: To modify pip, please run the following command:
c:\python36-32\python.exe -m pip install -U pip

Après avoir exécuté cette commande exacte, cela a fonctionné.

Pour ceux qui préconisent l’utilisation des environnements virtuels comme solution à cette erreur, pip et virtualenv doivent être mis à jour dans votre installation principale. En termes simples, un environnement virtuel n’offre aucune solution à ce problème.

4
Wyrmwood

J'avais également ce problème sous Windows 10. La fermeture de toutes mes sessions Jupyter Notebook et la réexécution des commandes pip install --upgrade en tant qu'administrateur ont résolu le problème.

2
davetunes

Exécutez simplement le cmd en mode administrateur.

1
Zeinab

Notez que si vous installez ceci via Anaconda, vous devrez ouvrir Anaconda en tant qu’administrateur, puis lancer la commande Invite à partir de cet emplacement.

Sinon, vous pouvez également exécuter "Anaconda Prompt" directement en tant qu'administrateur pour désinstaller et installer des packages.

1
Nikhil Gupta

Toujours d'actualité en 2018: n'installez pas les packages en tant qu'administrateur.

La solution de loin la plus judicieuse consiste à utiliser virtualenv pour créer un répertoire d’environnement virtuel (virtualenv dirname), puis à activer cet environnement virtuel avec dirname\Script\Activate sous Windows avant d'exécuter des commandes pip. Ou utilisez pipenv pour gérer les installations à votre place.

Ainsi, tout est écrit dans des répertoires pour lesquels vous disposez de droits en écriture complets, sans nécessiter de contrôle de compte d'utilisateur ni d'installations globales pour les répertoires locaux.

1

J'ai rencontré ce problème lorsque j'utilisais pycharm pour créer et exécuter un environnement virtuel - j'ai cliqué sur la case à cocher "hériter des packages de site global" - la suppression et la recréation du problème ont résolu le problème pour moi. Si vous avez utilisé un autre moyen pour créer votre venv, assurez-vous qu'il IS NE PAS INHÉRER les packages globaux! enter image description here

0
Ben