Es scheint, als hätte ein Update unter Windows 10 Python über Nacht kaputt gemacht. Beim Versuch, das python --version
Programm auszuführen, wurde der Fehler "Berechtigung verweigert" zurückgegeben. Keines der drei Updates; KB4507453, KB4506991 oder KB4509096 scheinen der Schuldige zu sein, aber der Zeitpunkt des Problems ist verdächtig. Anstatt mit dem Zurückrollen herumzuspielen, hoffe ich, dass es eine einfachere Lösung gibt, die mir fehlt.
Die Berechtigungen für Python lauten "-rwxr-xr-x", und ich habe nichts geändert, außer dass der Windows-Update-Computer nach der Installation der Patches von gestern Abend neu gestartet wird.
Laut Systeminformationen verwende ich 10.0.18362
Sollte auch beachten, dass dies geschieht, unabhängig davon, ob ich Python aus git-bash mit "Als Administrator ausführen" ausführen möchte oder nicht. Wenn ich PowerShell verwende, wird der Windows Store nur so geöffnet, als ob die App nicht installiert wäre Ich denke, der Inhalt meines /c/Users/david/AppData/Local/Microsoft/WindowsApps/
Ordners kann aus irgendeinem Grund nicht angezeigt werden.
Ich habe auch versucht, Python 3.7.4 neu zu installieren, aber das hat auch nicht geholfen. Gibt es noch etwas, auf das ich achten sollte?
Antworten:
Soweit ich das beurteilen kann, wurde dies durch einen Konflikt mit der Version von Python 3.7 verursacht, die kürzlich zum Windows Store hinzugefügt wurde. Es sieht so aus, als hätten zwei "Stubs" namens "python.exe" und "python3.exe" in den
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
Ordner eingefügt. In meinem Fall wurde dies vor dem Eintrag meiner vorhandenen ausführbaren Python-Datei in der Datei eingefügtPATH
.Durch Verschieben dieses Eintrags unter den richtigen Python-Ordner (teilweise) wurde das Problem behoben.
Der zweite Teil der Korrektur besteht darin,
manage app execution aliases
in die Windows-Suchaufforderung einzugeben und die Store-Versionen von Python vollständig zu deaktivieren.Es ist möglich, dass Sie nur den zweiten Teil ausführen müssen, aber auf meinem System habe ich beide Änderungen vorgenommen und jetzt ist alles wieder normal.
quelle
Forschung
Alle Dateien in
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
sind Platzhalter, die auf Dateien verweisen, die sich tatsächlich irgendwo in befindenC:\Program Files\WindowsApps
, wodurch die Berechtigungen vollständig verweigert werden.Es scheint, dass ich mit meiner Aussage in meinem Duplikat dieses Problems auf dem richtigen Weg war:
Quelle: Pylint kann in Git Bash unter Windows nicht installiert werden (Windows Store)
Berechtigungen werden aufgrund der WindowsApps-Verteilungsmethode königlich vermasselt:
Interessanterweise heißt es, dass die Gruppe "Benutzer" Dateien sowie meinen spezifischen Benutzer lesen und ausführen kann, aber die Gruppe Administratoren kann nur Ordnerinhalte aus einem unglaublich unergründlichen Grund auflisten. Und wenn versucht wird, auf den Ordner im Datei-Explorer zuzugreifen, wird nicht einmal der Ordnerinhalt angezeigt, daher ist auch daran etwas faul.
Interessanterweise wird
python
der Ordner "WindowsApps" nicht angezeigt , obwohl die Ausführung in CMD einwandfrei funktioniert, wenn die Dateien in dem Verzeichnis aufgelistet werden, in dem er sich befindet. Wenn Sie versuchen, in den Ordner zu navigieren, wird der Fehler "Berechtigung verweigert" generiert:Um die Berechtigungen ändern zu können, muss zuerst der Eigentümer geändert werden. Daher habe ich den Eigentümer in die Gruppe Administratoren geändert. Danach habe ich versucht, die Berechtigungen für die Gruppe "Administratoren" so zu ändern, dass sie "Vollzugriff" enthalten, aber dies konnte nicht geändert werden, da "Zugriff verweigert" wurde (duh, Micro $ ucks, das versuchen wir zu ändern!).
Dieser Berechtigungsfehler trat bei so vielen Dateien auf, dass ich bei wiederholten Nachrichten mit Alt + C schnell auf "Weiter" geklickt habe. Dies dauerte jedoch immer noch zu lange. Daher habe ich den Vorgang abgebrochen, sodass folgende Warnmeldung angezeigt wurde:
Und jetzt kann ich den TrustedInstaller-Benutzer nicht mehr als Eigentümer des WindowsApps-Ordners festlegen, da er nicht in der Liste Benutzer / Gruppen / Integrierte Sicherheitsprinzipien / Andere Objekte angezeigt wird. * *
* Gemäß diesem Tutorial können Sie den Eigentümer zurück zu TrustedInstaller wechseln, indem Sie
NT Service\TrustedInstaller
in das Textfeld Objektname eingeben .Lösung
Es gibt keine Lösung. Grundsätzlich sind wir komplett angeschraubt. Nobler Zug, Microsoft.
quelle
Dies scheint eine Einschränkung bei Git-Bash zu sein. Die Empfehlung zur Verwendung
winpty python.exe
hat bei mir funktioniert. Weitere Informationen finden Sie unter Python funktioniert nicht in der Befehlszeile von git bash .quelle
Dieses Problem ist viel zu häufig, um weiterhin bestehen zu können. Und die meisten Antworten und Anweisungen sprechen es nicht an. Folgendes ist unter Windows 10 zu tun:
Geben Sie
environment variables
die Startsuchleiste ein und öffnen Sie Systemumgebungsvariablen bearbeiten .Klicken Sie auf Umgebungsvariablen ...
Suchen Sie im Abschnitt Systemvariablen die Variable mit dem Schlüssel
Path
und doppelklicken Sie darauf.Suchen Sie nach Pfaden, die auf Python-Dateien verweisen. Wahrscheinlich gibt es keine. Wenn ja, wählen Sie sie aus und löschen Sie sie.
Erstellen Sie einen neuen Variablensatz für den Pfad zu Ihrer ausführbaren Python-Datei. Normalerweise ist das so
C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Python38
. Stellen Sie dies sicher, indem Sie dies über Ihren Datei-Explorer überprüfen.Hinweis : Wenn Sie nicht sehen können
AppData
, haben Sie die Anzeige versteckter Objekte nicht aktiviert : Klicken Sie auf die Registerkarte Ansicht und aktivieren Sie das Kontrollkästchen Versteckte Objekte.Erstellen Sie eine weitere Variable, die auf das
Scripts
Verzeichnis verweist . Typischerweise ist es soC:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Scripts
.Starten Sie den Terminal und versuchen Typisierung
py
,python
,python3
, oderpython.exe
.quelle
Es ist keine Lösung mit PowerShell, aber ich hatte das gleiche Problem außer mit MINGW64. Ich habe es umgangen, indem ich zu Windows Subsystem für Linux (was ich sowieso tun wollte) als Terminal gewechselt habe, nur allgemein und in VSCode. Dieser Beitrag beschreibt es gut:
So konfigurieren Sie VS Code (Windows) für die Verwendung der Ubuntu App als Terminal
Zusammenfassend:
1) Installieren Sie Ubuntu aus dem Windows App Store
2) Ändern Sie die Standard-Bash von CMD -> wslconfig / setdefault Ubuntu
--- Für VSCode
3) Starten Sie VSCode neu
4) Ändern Sie im VSCode "terminal.integrated.shell.windows" in "C: \ WINDOWS \ System32 \ bash.exe" (weitere Details siehe obigen Beitrag)
Läuft jetzt reibungslos in VSCode und WSL (Bash unter Ubuntu unter Windows). Könnte zumindest eine vorübergehende Lösung für Sie sein.
quelle
Durch Hinzufügen des lokalen Python-Pfads vor den WindowsApps wurde das Problem behoben.
quelle
Am einfachsten ist es, die Umgebungsvariablen PATH und PYTHONPATH zu ändern, um sicherzustellen, dass der Ordner mit den richtigen Python-Binärdateien vor dem lokalen WindowsApp-Ordner durchsucht wird. Sie können auf die Umgebungsvariablen zugreifen, indem Sie das Bedienfeld öffnen und nach "env" suchen.
quelle
Problemumgehung: Wenn Sie Python von exe installiert haben, führen Sie die folgenden Schritte aus.
Schritt 1: Deinstallieren Sie Python
Schritt 2: Installieren Sie Python und aktivieren Sie das Kontrollkästchen Python-Pfad, wie in der Abbildung unten (gelb) hervorgehoben.
Das hat mich das Problem gelöst.
quelle
Möglicherweise können Sie versuchen, die Eingabeaufforderung mit Administratorrechten zu öffnen. (Als Administrator ausführen). Funktioniert die meiste Zeit für mich.
quelle
Sparen Sie Zeit: Verwenden Sie
wsl and vscode remote extension
diese Option, um auch mit win10 ordnungsgemäß mit Python zu arbeiten, und vergessen Sie nichtvirtualenv
! nützlich https://linuxize.com/post/how-to-install-visual-studio-code-on-ubuntu-18-04/quelle