Python - Fehlerbehebung bei der PIP-Installation - PermissionError: [WinError 5] Der Zugriff wird verweigert

77

Ich erhalte die folgende Fehlermeldung, wenn ich PIP verwende, um entweder neue Pakete zu installieren oder Pip selbst auf die neueste Version zu aktualisieren. Ich verwende pip auf einem Windows 8.1-Computer mit Python 3.4.

Die Nachricht sagt mir, dass ich keine Administratorberechtigung für die Dateien habe (mein Konto ist ein Administratorkonto).

Ich würde mich über Gedanken darüber freuen, wie dies behoben werden kann, da dies die Installation von Paketen und den Fortschritt mit Python behindert.

Fehlermeldung:

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'
Dave Mansfield
quelle
8
Führen Sie die Eingabeaufforderung als Administrator aus. Könnte helfen. Administratorrechte im Konto sind nicht immer ausreichend.
Roope
Danke Roope. Dies war in der Tat das Problem. Leicht zu lösen, aber frustrierend zu erleben.
Dave Mansfield
3
Noch relevant im Jahr 2018: Führen Sie keine Dinge als Administrator aus. Die weitaus sinnvollere Lösung besteht darin virtualenv, ein Verzeichnis der virtuellen Umgebung ("direkter Name der virtuellen Umgebung") zu erstellen und diese virtuelle Umgebung dann mit "dirname \ Script \ Activate" zu aktivieren, bevor Pip-Befehle ausgeführt werden. Auf diese Weise wird alles in Verzeichnisse geschrieben, für die Sie die vollständige Schreibberechtigung haben, ohne dass eine Benutzerkontensteuerung erforderlich ist und ohne globale Installationen für lokale Abhängigkeiten.
Mike 'Pomax' Kamermans
1
Es funktioniert für mich, wenn ich cmd im Administratormodus ausgeführt habe.
Zeinab
Möglicherweise verfügt die Benutzergruppe nicht über Berechtigungen zum Schreiben / Ändern für das Laufwerk C:. Dieser Fehler wird auch dann angezeigt, wenn Sie als Administrator angemeldet sind, sodass Sie die Berechtigungen für das Laufwerk C: für die Benutzergruppe überprüfen können .
Mikhail V

Antworten:

81

E: Da diese Antwort an Popularität gewonnen zu haben scheint, möchte ich hinzufügen: Dinge global zu tun ist meistens keine gute Idee. Fast immer lautet die richtige Antwort: Verwenden Sie eine Projektumgebung, in der Sie Dinge nicht global installieren, z virtualenv. B. mit .


Für diejenigen, die möglicherweise auf dasselbe Problem stoßen:

Führen Sie die Eingabeaufforderung als Administrator aus. Administratorrechte im Konto sind nicht immer ausreichend. In Windows können Dinge als Administrator ausgeführt werden, indem Sie mit der rechten Maustaste auf die ausführbare Datei klicken und "Als Administrator ausführen" auswählen. Geben Sie also "cmd" in das Startmenü ein, klicken Sie mit der rechten Maustaste auf cmd.exe und führen Sie es als Administrator aus.

Roope
quelle
2
Wenn Sie keine Administratorrechte haben / keine Administratorrechte möchten: stackoverflow.com/questions/7465445/…
Gladclef
58
es trat immer noch sogar im Admin-Modus auf
jef
5
Noch relevant für 2018: Die weitaus sinnvollere Lösung besteht darin, eine virtuelle Umgebung mit "direkter Name" zu erstellen und diese dann mit "dirname \ Script \ Activate" zu aktivieren, bevor Pip-Befehle ausgeführt werden.
Mike 'Pomax' Kamermans
2
Beim Versuch, pip mit dem Befehl "python -m pip install --upgrade pip" zu aktualisieren, und beim Versuch, numpy mit dem Befehl "pip install numpy" zu installieren, ist dieselbe Fehlermeldung "PermissionError: [WinError 5] Zugriff verweigert" aufgetreten. . Ich folgte der obigen Methode, indem ich das Cmd-Fenster als Administrator öffnete und ausführte und die genannten Installationen ausführte. es funktionierte.
Luke V
Für diejenigen, die sich 2018 virtualenvimmer noch fragen, warum dies eine sinnvollere Lösung ist als pipals Administrator: "Alles scheint in Ordnung zu sein, aber wir haben unwissentlich eine Katastrophe verursacht!" dabapps.com/blog/introduction-to-pip-and-virtualenv-python
Egalth
53

Ich weiß, dass meine Antwort seltsam wäre, aber das habe ich gerade erlebt.

Ich habe den ähnlichen Fehler bei der Installation des Tensorflow-Pakets erhalten und das Gleiche versucht, indem ich Powershell in Windows als Administrator geöffnet habe, aber vergebens.

Später fand ich heraus, dass ich bereits numpy in einem der Python-Skripte in einer aktiven Python-Sitzung verwendet habe. Also habe ich die Spyder-IDE geschlossen und versucht, das Tensorflow-Paket zu installieren, indem ich Powershell als Administrator ausgeführt habe, und es hat funktioniert.

Ich hoffe, dies wird jemand anderem wie mir helfen, der diesen älteren, aber nützlichen Beitrag in den kommenden Tagen öffnen wird

JKC
quelle
1
Danke, das hat mir geholfen. Außerdem fand ich Spyder kaputt, weil ich es früher versucht hatte. Dies wurde behoben, indem 'conda install tornado = 4.5.3' 'ausgeführt wurde, wie in github.com/spyder-ide/spyder/issues/6426
Joris
8
Ich hatte ein laufendes Jupyter-Notizbuch. Das Schließen hat das Problem behoben.
Typhon04
1
Ich hatte auch dieses Problem, ich schloss gerade das bereits laufende Fenster und versuchte es erneut, dies löste das pbm
SaddamBinSyed
1
Seit 20 Minuten online, das ist das einzige, was für mich funktioniert hat! Vielen Dank.
Ibrahim Awad
Das hat funktioniert, ich hatte ein Jupyter-Notebook in einer anderen Sitzung. Nachdem ich es getötet hatte, konnte ich deinstallieren.
Noobie
22

Selbst wenn Sie vom Administrator aus ausgeführt werden, kann das Problem möglicherweise nicht behoben werden, wenn der Pip in einem anderen Benutzerbereich installiert ist. Dies liegt daran, dass der Administrator nicht das Userspace-Verzeichnis eines anderen besitzt und daher das Innere des Verzeichnisses, das jemandem gehört, nicht sehen (hineingehen) kann. Unten finden Sie eine genaue Lösung.

python -m pip install -U pip --user //In Windows 

Hinweis: Sie sollten die Option --user angeben

pip install -U pip --user //Linux, and MacOS
Uddhav Gautam
quelle
2
Dies ist für mich die Lösung sowohl für Mac als auch für Windows. Danke
pbou
arbeitete in Windows VM. konnte danach pip installieren. Danke!
eyeknownothing
7

Für diejenigen, die auf dieses Problem stoßen und die Eingabeaufforderung als Administrator ausführen, funktioniert dies nicht für mich:

Da ich bereits ein erstes Mal versucht hatte, ohne die Eingabeaufforderung cmd als Administrator auszuführen , stellte ich in meinem Ordner c: \ Users \ "USER" \ AppData \ Local \ Temp fest, dass versucht wurde, Dateien aus demselben Ordner pip-u2e7e0ad-uninstall auszuführen . Das Löschen dieses Ordners aus dem Temp- Ordner und das Wiederholen der Installation haben das Problem für mich behoben.

Michael Martin
quelle
2
Dies funktionierte bei mir unter Windows 10 mit Anaconda nicht. Das Löschen aller C:\\Users\\...\\AppData\\Local\\Temp\\pip-unpack-hat für mich nichts geändert.
Josiah Yoder
1
DIES. vor allem auf Domain verbunden mwin Maschinen
Glen020
6

Verwenden Sie nicht die Eingabeaufforderung in der IDE. Führen Sie die Eingabeaufforderung von Windows als Administrator aus. Ich bin sicher, das wird das Problem lösen. Wenn nicht, deinstallieren Sie pip und installieren Sie die neueste Version direkt neu.

Santa
quelle
4
Ich habe es von der IDE (PyCharm) geschafft. Ich habe gerade PyCharm selbst im Administratormodus neu gestartet.
Adam Toth
5

Ab dem Upgrade von pip 7.xx auf 8.xx unter Python 3.4 (für * .whl-Unterstützung).

Falscher Befehl: pip install --upgrade pip(pip.exe kann nicht in temporären Ordner verschoben werden, Berechtigung verweigert)

OK Variante: py -3.4 -m pip install --upgrade pip(pip.exe nicht ausführen)

Valerij
quelle
Vielen Dank. Das Problem ist also, dass pip nicht vorübergehend verschoben werden kann, da es als Programm ausgeführt wird!
Ein Gesicht
5

Ich hatte das gleiche Problem mit Anaconda unter Windows. Es scheint, dass es ein Problem mit mcAfee Antivirus gibt. Wenn Sie es während der Ausführung der Updates oder Installationen deaktivieren, können Sie die Installation ordnungsgemäß ausführen.

Netzsooc
quelle
Das Deaktivieren von "Host IPS" hat mir geholfen. Vielen Dank!
Amaslenn
5

Nach dem Sehen

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.

Ich rannte

pip install -U pip

und schlagen Sie diesen Fehler

PermissionError: [WinError 5]

Ich versuchte es erneut und bekam

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

Nachdem genau dieser Befehl ausgeführt wurde, funktionierte es.

Für diejenigen, die die Verwendung virtueller Umgebungen als Lösung für diesen Fehler fördern, müssen pip und virtualenv in Ihrer Hauptinstallation aktualisiert werden. Einfach ausgedrückt bietet eine virtuelle Umgebung keine Lösung für dieses Problem.

Wyrmwood
quelle
Dies musste so sein, da sich Ihr Ordner C: \ Users \ user \ AppData \ Roaming \ Python \ Python36 \ Scripts nicht im PATH der Umgebung befindet.
Iuri Guilherme vor
4

TL; DR : python -m pip install -U pipDann versuchen Sie es erneut.


Ich habe bereits ein venv(virtualenv) in PyCharm verwendet.

Beim Erstellen habe ich das inherit global site packagesKontrollkästchen aktiviert, damit über ein Installationsprogramm installierte Pakete funktionieren. Jetzt war in meinem venvkeine pipinstalliert, also würde es die geerbte globale verwenden pip.

So ist der Fehler gelaufen:

(venv) D:\path\to\my\project> pip install certifi  # or any other package

Würde mit scheitern

PermissionError: [WinError 5] Access denied: 'c:\\program files\\python36\\Lib\\site-packages\\certifi'

Beachten Sie, dass dies der Pfad des Systempythons ist, nicht der venv. Wir möchten jedoch, dass es in der richtigen Umgebung ausgeführt wird.

Hier noch etwas Graben:

(venv) D:\path\to\my\project> which pip
/c/Program Files/Python36/Scripts/pip

(venv) D:\path\to\my\project> which python
/d/path/to/my/project/venv/Scripts/python

Python verwendet also den richtigen Pfad, Pip jedoch nicht? Lassen Sie uns pip auch hier in der richtigen installieren:

(venv) D:\path\to\my\project> python -m pip install -U pip
... does stuff ...
Successfully installed pip

Jetzt ist es besser. Das erneute Ausführen des ursprünglichen fehlgeschlagenen Befehls funktioniert jetzt, da der richtige Pip verwendet wird.

(venv) D:\path\to\my\project> pip install certifi  # or any other package
... install noise ...
Successfully installed certifi-2019.9.11 chardet-3.0.4 idna-2.8 requests-2.22.0 urllib3-1.25.7
Glückydonald
quelle
Danke .. Hat für mich gearbeitet. :)
Harsha Biyani
2

Ich hatte dieses Problem auch unter Windows 10. Durch das Schließen aller meiner Jupyter Notebook-Sitzungen und das erneute Ausführen der pip install --upgradeBefehle als Administrator wurde das Problem behoben.

Davetunes
quelle
2
python -m pip install -U pip --user //In Windows 

Hinweis: Sie sollten die Option --user angeben

pip install -U pip --user //Linux, and MacOS

Oder führen Sie das Cmd im Administratormodus aus.

Azeez Bello
quelle
1

Noch relevant für 2018: Installieren Sie keine Pakete als Administrator.

Die weitaus sinnvollere Lösung besteht darin, mithilfe von virtualenv ein Verzeichnis für virtuelle Umgebungen ( virtualenv dirname) zu erstellen und diese virtuelle Umgebung dann dirname\Script\Activatein Windows zu aktivieren, bevor Pip-Befehle ausgeführt werden. Oder verwenden Sie pipenv , um die Installationen für Sie zu verwalten.

Auf diese Weise wird alles in Verzeichnisse geschrieben, für die Sie die vollständige Schreibberechtigung haben, ohne dass eine Benutzerkontensteuerung erforderlich ist und ohne globale Installationen für lokale Verzeichnisse.

Mike 'Pomax' Kamermans
quelle
1
Es ist das dritte Mal in derselben Frage, dass Sie diese Vorschläge / Kommentare veröffentlichen. Ich bewundere Ihre Beharrlichkeit, aber worum geht es?
Juliusz
Vielleicht sollten Sie virtualenv verwenden und die anderen Antworten, die ich kommentiert habe, sind angesichts der Windows-Benutzerrechtsmodelle ziemlich verrückt. Auch wenn es sich um eine alte Frage mit alten Antworten handelt, hinterlassen Sie neue Kommentare, wenn die Antworten für "jetzt" nicht mehr funktionieren (obwohl die Antwort zugegebenermaßen auch im Jahr 2015 tatsächlich "use virtualenv" lautete). Wirklich schlechte Ratschläge sind schlimmer als keine Ratschläge. Hinterlassen Sie Kommentare, wenn Sie Antworten (oder andere Kommentare) sehen, die zu einer Katastrophe führen.
Mike 'Pomax' Kamermans
Ehrlich gesagt, einige Benutzer wie ich benötigen nicht mehrere Python-Installationen. Wir sind sehr zufrieden mit der Ausführung einer einzelnen Installation und können die Abhängigkeiten auf diese Weise problemlos verwalten. Wir sehen keine Notwendigkeit für die Aktivierung eines zusätzlichen Befehls von "virtualenv", wenn unser einziges Ziel darin besteht, eine einzelne Python-Installation zu verwenden. Ich bin verwirrt, warum die Probleme mit dem Standard-Python-Windows-Installationsprogramm weiterhin bestehen bleiben müssen. Wenn die native Ausführung von Python unter Windows nicht unterstützt wird, sollte dies vom offiziellen Installationsprogramm angegeben werden. Andernfalls ist nur eine spezifische Lösung des Problems erwünscht.
user4779
Dann hoffe ich , Sie nicht immer laufen müssen jemand anderen Code, der wird Versionskonflikte ergeben , sobald Sie pip ausgeführt haben global Dinge zu installieren. Dies hat alles mit "Puristen" zu tun und alles damit, einen gesunden Menschenverstand über widersprüchliche Softwareanforderungen in einem Ökosystem anzuwenden, in dem dieses Problem so unaufdringlich wie möglich gelöst wurde (Pipenv ist nicht perfekt, Aber es ist viel besser, als jede einzelne Anforderung selbst manuell zu installieren, mit der manuellen _un_installation von Paketen, die jedes Mal in Konflikt geraten, wenn Sie den Code eines anderen ausführen müssen.
Mike 'Pomax' Kamermans
1

Beachten Sie, dass Sie, wenn Sie dies über Anaconda installieren, Anaconda als Administrator öffnen und von dort aus die Eingabeaufforderung starten müssen.

Andernfalls können Sie "Anaconda prompt" auch direkt als Administrator ausführen, um Pakete zu deinstallieren und zu installieren.

Nikhil Gupta
quelle
1

Hallo Könnten Sie versuchen, diese Linie cmd seine Arbeit für mich

python -m pip install --user --upgrade pip

Imad77
quelle
0

Führen Sie das cmd einfach im Administratormodus aus.

Zeinab
quelle
0

Ich bin auf dieses Problem gestoßen, als ich mit pycharm eine virtuelle Umgebung erstellt und ausgeführt habe. Ich habe das Kontrollkästchen "Globale Site-Pakete erben" aktiviert. Das Löschen und Neuerstellen des venv hat das Problem für mich gelöst. Wenn Sie ein anderes Mittel zum Erstellen Ihres Venv verwendet haben, stellen Sie sicher, dass es keine globalen Pakete erbt! Geben Sie hier die Bildbeschreibung ein

Ben
quelle
0

Führen Sie die Eingabeaufforderung als Administrator aus und verwenden Sie das Flag '--user', z. pip install --user --upgrade pandas

user1721934
quelle
-1

Installieren Sie Python einfach in einem anderen Ordner neu, z c:\python. Danach werden Sie nicht mehr von den pipgewünschten Administratorrechten gestört.

Windows 10 Pro x64-Benutzer.

Mark Twain
quelle