accès à l'installation de pip refusé sur Windows

110

J'essaie de fonctionner pip install mitmproxysous Windows, mais je continue à me voir refuser l'accès, même avec cmdet en PowerShellutilisant l' Run as Administratoroption.

WindowsError: [Error 5] Access is denied: 'c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6u\\cryptography-0.9.1\\.eggs\\cffi-1.1.2-py2.7-win-amd64.egg\\_cffi_backend.pyd'

Comment puis-je faire fonctionner cela?

Bruno Klein
la source
Il y a aussi un bon article plus ancien: une idée de comment mettre à jour python PIP sur une boîte Windows?
strpeter

Réponses:

140

Dans le cas de Windows, dans cmd, essayez d'exécuter pip install en utilisant l'exécutable python

par exemple

python -m pip install mitmproxy

cela devrait fonctionner, au moins cela a fonctionné pour moi pour l'installation d'autres packages.

nayak
la source
6
Pour une raison quelconque, les autorisations de fichier temporaire étaient moins qu'un contrôle total pour mon utilisateur. Suivre cette voie a python -mfait la différence.
Jason Dunkelberger
2
Savons-nous pourquoi cela fonctionne? Et pas via PowerShell?
Big Money
66

Modifiez les autorisations de sécurité de votre dossier d'installation Python en:

  1. Ouvrez un shell Python
  2. Aller au gestionnaire de tâches
  3. Trouvez le processus python
  4. Cliquez avec le bouton droit et ouvrez l'emplacement
  5. Le dossier va s'ouvrir dans l'explorateur, remonter dans un répertoire
  6. Cliquez avec le bouton droit sur le dossier et sélectionnez les propriétés
  7. Cliquez sur l'onglet de sécurité et appuyez sur 'modifier'
  8. Ajoutez tout le monde et donnez-leur la permission de lire et d'écrire.
  9. Enregistrez vos modifications

Si vous ouvrez en cmdtant qu'administrateur; alors vous pouvez faire ce qui suit:

Si Python est défini dans votre PATH, alors:

python -m pip install mitmproxy
Richard Kenneth Niescior
la source
3
Je devais le faire à la fois pour TOUS LES PACKAGES D'APPLICATION et pour les utilisateurs, mais cela a fonctionné.
Chronique du
1
A parfaitement fonctionné. Merci beaucoup!
Sudipto Shome
3
Route alternative avec un effort similaire: 1) Installer Linux 2)sudo pip install foo
Nearoo
1
@Chronicle Avez-vous vraiment autorisé tout le monde à lire et à écrire dans les profils d'utilisateurs? Si oui, c'est une assez mauvaise idée (très mauvaise).
David Ferenczy Rogožan
@Richard Comment l'ajout des autorisations de lecture et d'écriture dans les répertoires de Python peut résoudre le problème avec l'autorisation refusée dans le temprépertoire de l'utilisateur ? Je dirais que c'est la manière d'exécuter pip( python -m pipau lieu de tout pipcomme @nayak l'a suggéré) ce qui aide, ces 9 étapes précédentes sont probablement sans importance (car cela n'a vraiment aucun sens).
David Ferenczy Rogožan
27

Personnellement, j'ai trouvé qu'en ouvrant en cmdtant qu'administrateur puis exécuter python -m pip install mitproxy semble résoudre mon problème.

Remarque: - J'ai installé python viachocolatey

Bhoom Suktitipat
la source
Tu as sauvé ma journée, mon frère!
Maulik Dodia
1
si vous exécutez en cmdtant qu'administrateur, vous devriez pouvoir faire normal pip install [package]. A travaillé pour moi de toute façon.
EliSquared
14

Une chose supplémentaire qui n'a pas été couverte dans les réponses précédentes et qui causent souvent des problèmes sur Windows et m'empêche d'installer un package malgré l'exécution en tant qu'administrateur, c'est que vous obtenez la même erreur d' autorisation refusée s'il existe un autre programme qui utilise certains des fichiers que vous (ou pip install) essayez d'accéder. C'est une "fonctionnalité" vraiment stupide de Windows qui apparaît plusieurs fois, par exemple lorsque vous essayez de déplacer certains fichiers.

De plus, je ne sais pas comment déterminer quel programme verrouille un fichier particulier, donc le plus simple à faire est de redémarrer et de faire l'installation avant de commencer quoi que ce soit, en particulier avant d'exécuter par exemple Spyder ou tout autre logiciel basé sur Python. Vous pouvez également essayer de fermer tous les programmes, mais il peut être difficile de savoir lequel contient réellement un fichier. Pour un répertoire par exemple, il suffit que vous ayez une fenêtre Explorer ouverte dans ce répertoire.

Robert
la source
Oui, a fait l'affaire pour moi! J'ai travaillé simultanément dans Git Bash, Pycharm Terminal et Windows Terminal, après avoir fermé deux des trois, tout fonctionnait.
Cappo
10

Ouvrez cmd avec "Exécuter en tant qu'administrateur" et exécutez la commande pip install mitmproxy. Il l'installera.

Sharan
la source
10

Comme, j'installe via anaconda Prompt.Dans mon cas, cela n'a même pas fonctionné avec python -m pip installEnsuite, j'ajoute ceci

python -m pip install <package_name> --user

Ça marche pour moi.

Comme: python -m pip install "numpy-1.15.4+mkl-cp36-cp36m-win_amd64.whl" --user

Notez que les guillemets doubles ne sont pas nécessaires, vous pouvez donner le nom du package que vous souhaitez installer.

Vous devriez également essayer d'exécuter l'invite de commande en tant qu'administrateur , puis essayer pip install. Cela devrait fonctionner non plus.

susan097
la source
Cela a fonctionné pour moi pour installer des packages python (sympy dans ce cas) à l'école. Merci!
JDG
Meilleure solution lorsque vous ne disposez pas des droits d'administrateur sur votre système.
Ajay Sharma
5

Essayez de donner la permission de contrôler totalement le dossier python.

Trouvez le répertoire racine de python -> clic droit -> propriétés -> sécurité -> éditer -> donner un contrôle total aux utilisateurs -> oui et attendez la fin du processus.

Ça marche pour moi.

pajarnas
la source
3

Essayez de supprimer le dossier c:\\users\\bruno\\appdata\\local\\temp\\easy_install-0fme6umanuellement, puis réessayez la commande pip.

Félix
la source
Merci pour cela. Certains fichiers pip temporaires bloquaient l'installation.
Eok
3

Ouverture de l'invite de commande En tant qu'administrateur, je viens de travailler pour moi sans utiliser l'exécutable Python. Cliquez avec le bouton droit sur le raccourci de l'invite de commande et choisissez «Exécuter en tant qu'administrateur». Exécutez ensuite la commande suivante.

pip install Django
Charasala
la source
Idem pour moi - il fallait juste exécuter cmd en tant qu'administrateur.
Charidimos
3

La cause dans mon cas était d'avoir un notebook jupyter ouvert, qui importait la bibliothèque appropriée; la cause première semble être une erreur Windows due à l'ouverture / l'utilisation du fichier (voir aussi la réponse de @ Robert et la recommandation de redémarrer).

Donc, une autre chose à vérifier est qu'aucun autre processus Python n'est en cours d'exécution.

Pour moi, l'arrêt du serveur notebook a résolu le problème.

etov
la source
2
  1. Ouvrez l'invite de commande en tant qu'administrateur.

  2. Pour installer un package Python, utilisez cette commande, y compris --user.

pip install --ignore-installed --upgrade --user <packagename>

Amar Kumar
la source
1

Lorsque tout le reste échoue, essayez de quitter votre IDE. J'ai eu de nombreux cas dans lesquels PyCharm causait cela. Dès que j'ai quitté PyCharm, j'ai finalement pu installer mes packages à partir de la ligne de commande. Sinon, vous pouvez également installer via PyCharm lui-même dans Paramètres -> Projet: xxx -> Interpréteur de projet -> +.

kichik
la source
1
J'ai eu le même problème jusqu'à ce que je ferme Spyder
atm
0

Exécutez cmd.exe en tant qu'administrateur, puis tapez:

python -m pip install
mdev
la source
0

J'ai rencontré un problème similaire, mais le rapport d'erreur concerne

[SSL: TLSV1_ALERT_ACCESS_DENIED] tlsv1 alert access denied (_ssl.c:777)

J'ai d'abord essayé ce https://python-forum.io/Thread-All-pip-install-attempts-are-met-with-SSL-error#pid_28035 , mais il semble que cela ne puisse pas résoudre mes problèmes, et répéter encore le même problème.

Et deuxièmement, si vous travaillez sur un ordinateur professionnel, il peut généralement exister un filtre de contenu Web (mais je peux accéder directement à https://pypi.python.org via le navigateur) .Et résolvez ce problème en ajoutant un serveur proxy.

Pour Windows, ouvrez Internet propertiesvia IE ou Chrome ou quoi que ce soit, puis définissez une adresse proxy et un port valides , et résolvez ainsi mes problèmes

Ou simplement ajouter l'option pip --proxy [proxy-address]:port install mitmproxy.Mais vous devez toujours ajouter cette option lors de l'installation par pypi

Les deux solutions ci-dessus sont une alternative pour votre demande.

K. Andy wang
la source
0

Dans mon cas, ça n'a même pas fonctionné avec python -m pip install

Ce que j'ai fait est, depuis un cmd en tant qu'administrateur:

PsExec.exe -i -s -d cmd.exe

Afin de générer une cmd SYSTEM, alors pip install mitmproxy

;)

aDoN
la source
-1

Fermez simplement tous les fichiers python ouverts. Et essayez de courir en tant qu'administrateur. Ça va marcher.

par exemple

pip install numpy
Faizan Amin
la source