Wygląda na to, że aktualizacja systemu Windows 10 z dnia na dzień zepsuła Pythona. Sama próba uruchomienia python --version
zwróciła błąd „Odmowa uprawnień”. Żadna z trzech aktualizacji; KB4507453, KB4506991 lub KB4509096 wyglądają, jakby były winowajcami, ale czas wystąpienia problemu jest podejrzany. Zamiast bawić się wycofywaniem, mam nadzieję, że brakuje mi prostszej poprawki.
Uprawnienia w Pythonie to „-rwxr-xr-x” i nie zmieniłem niczego poza zezwoleniem na ponowne uruchomienie komputera z aktualizacją Windows po zainstalowaniu wczorajszych poprawek.
Zgodnie z informacjami o systemie używam wersji 10.0.18362
Powinienem również zauważyć, że dzieje się tak niezależnie od tego, czy (próbuję) uruchomić Pythona z git-bash używając "uruchom jako administrator", czy nie, a jeśli spróbuję użyć PowerShell, po prostu otworzy sklep Windows tak, jakby aplikacja nie była zainstalowana, więc Myślę, że /c/Users/david/AppData/Local/Microsoft/WindowsApps/
z jakiegoś powodu nie widzi zawartości mojego folderu.
Próbowałem również ponownie zainstalować Python 3.7.4, ale to też nie pomogło. Czy jest coś jeszcze, na co powinienem zwrócić uwagę?
Odpowiedzi:
O ile wiem, było to spowodowane konfliktem z wersją Pythona 3.7, która została niedawno dodana do Sklepu Windows. Wygląda na to, że dodało to dwa „stuby” o nazwie python.exe i python3.exe do
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
folderu, aw moim przypadku zostało to wstawione przed wpisem mojego istniejącego pliku wykonywalnego Pythona w plikuPATH
.Przeniesienie tego wpisu poniżej właściwego folderu Pythona (częściowo) rozwiązało problem.
Drugą częścią poprawiania tego jest wpisanie
manage app execution aliases
w polu wyszukiwania systemu Windows i całkowite wyłączenie wersji sklepu Pythona.Możliwe, że będziesz musiał wykonać tylko drugą część, ale w moim systemie wprowadziłem obie zmiany i teraz wszystko wróciło do normy.
źródło
Badania
Wszystkie pliki w programie
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps
są symbolami zastępczymi wskazującymi pliki, które faktycznie znajdują się gdzieś w programieC:\Program Files\WindowsApps
, któremu odmówiono uprawnień.Wygląda na to, że byłem na dobrej drodze z moim oświadczeniem złożonym w moim duplikacie tego problemu:
Źródło: nie można zainstalować pylinta w Git Bash w systemie Windows (Sklep Windows)
Uprawnienia są po królewsku spieprzone z powodu metody dystrybucji WindowsApps:
Co ciekawe, jest tam napisane, że grupa „Użytkownicy” może odczytywać i uruchamiać pliki, a także mój określony użytkownik, ale grupa Administratorzy może wyświetlać zawartość folderu tylko z jakiegoś przezabawnie niezrozumiałego powodu. A kiedy próbuje uzyskać dostęp do folderu w Eksploratorze plików, odmawia nawet wyświetlenia zawartości folderu, więc jest też coś podejrzanego.
Co ciekawe, nawet jeśli wykonywanie
python
w CMD działa dobrze, folder „WindowsApps” nie pojawia się podczas wyświetlania listy plików w katalogu, w którym się znajduje, a próba przejścia do folderu generuje błąd „Odmowa uprawnień”:Próba zmiany uprawnień wymaga najpierw zmiany właściciela, więc zmieniłem właściciela na grupę Administratorzy. Następnie próbowałem zmienić uprawnienia grupy Administratorzy, aby zawierała Pełna kontrola, ale nie mogłem tego zmienić, ponieważ „odmówiono dostępu” (prawda, Micro $ ucks, właśnie to próbujemy zmienić!).
Ten błąd uprawnień wystąpił dla tak wielu plików, że użyłem Alt + C do szybkiego kliknięcia „Kontynuuj” w powtarzających się wiadomościach, ale nadal trwało to zbyt długo, więc anulowałem proces, w wyniku czego pojawił się komunikat ostrzegawczy:
A teraz nie mogę ustawić użytkownika TrustedInstaller z powrotem jako właściciela folderu WindowsApps, ponieważ nie pojawia się on na liście Użytkownicy / Grupy / Wbudowane zasady bezpieczeństwa / Inne obiekty. *
* Właściwie, zgodnie z tym samouczkiem , możesz zamienić właściciela z powrotem na TrustedInstaller, wpisując
NT Service\TrustedInstaller
w polu tekstowym nazwy obiektu.Rozwiązanie
Nie ma rozwiązania. Zasadniczo mamy kompletnie przerąbane. Ruch z klasą, Microsoft.
źródło
Wydaje się, że jest to ograniczenie w git-bash. Rekomendacja użycia
winpty python.exe
zadziałała dla mnie. Aby uzyskać dodatkowe informacje, zobacz Python nie działa w wierszu poleceń git bash .źródło
Ten problem jest zbyt powszechny, aby nadal był trwały. Większość odpowiedzi i instrukcji nie dotyczy tego problemu. Oto, co należy zrobić w systemie Windows 10:
Wpisz
environment variables
początkowy pasek wyszukiwania i otwórz Edytuj zmienne środowiskowe systemu .Kliknij Zmienne środowiskowe ...
W sekcji Zmienne systemowe znajdź zmienną za pomocą klucza
Path
i kliknij ją dwukrotnie.Poszukaj ścieżek wskazujących na pliki Pythona. Prawdopodobnie nie ma. Jeśli tak, zaznacz je i usuń.
Utwórz nową zmienną ustawioną na ścieżkę do pliku wykonywalnego Pythona. Zwykle tak jest
C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Python38
. Zapewnij to, sprawdzając za pomocą Eksploratora plików.Uwaga : jeśli nie widzisz
AppData
, oznacza to, że nie włączyłeś wyświetlania ukrytych elementów : kliknij kartę Widok i zaznacz pole wyboru Ukryte elementy.Utwórz kolejną zmienną wskazującą na
Scripts
katalog. Zazwyczaj tak jestC:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Scripts
.Ponowne uruchomienie terminala i spróbuj wpisać
py
,python
,python3
, lubpython.exe
.źródło
To nie jest rozwiązanie z PowerShell, ale miałem ten sam problem, z wyjątkiem MINGW64. Poradziłem sobie z tym, przełączając się na podsystem Windows dla systemu Linux (co i tak chciałem zrobić) jako mój terminal, tylko ogólnie iw VSCode. Ten post dobrze to opisuje:
Jak skonfigurować VS Code (Windows), aby używać aplikacji Ubuntu jako terminala
W podsumowaniu:
1) Zainstaluj Ubuntu ze sklepu Windows App Store
2) Zmień domyślny bash z CMD -> wslconfig / setdefault Ubuntu
--- Dla VSCode
3) Uruchom ponownie VSCode
4) W VSCode zmień „terminal.integrated.shell.windows” na „C: \ WINDOWS \ System32 \ bash.exe” (więcej szczegółów w poście powyżej)
Działa płynnie teraz w VSCode i WSL (Bash w systemie Ubuntu w systemie Windows). Może być dla ciebie przynajmniej tymczasowym rozwiązaniem.
źródło
Dodanie lokalnej ścieżki języka Python przed rozwiązaniem problemu przez aplikacje WindowsApps.
źródło
Obejście problemu: Jeśli zainstalowałeś Pythona z exe, wykonaj poniższe kroki.
Krok 1: Odinstaluj python
Krok 2: Zainstaluj Pythona i zaznacz pole wyboru Python path, jak zaznaczono na poniższym screentshot (żółty).
To rozwiązało problem.
źródło
U mnie próbowałem
manage app execution aliases
i wyskoczył błąd że python3 nie jest poleceniem więc do tego użyłempy
zamiastpython3
i zadziałałoNie wiem, dlaczego tak się dzieje, ale dla mnie zadziałało
źródło
Najprościej byłoby zmodyfikować zmienne środowiskowe PATH i PYTHONPATH, aby upewnić się, że folder zawierający odpowiednie pliki binarne języka Python jest przeszukiwany przed lokalnym folderem WindowsApp. Dostęp do zmiennych środowiskowych można uzyskać, otwierając panel sterowania i wyszukując „env”
źródło
Wynika to ze sposobu, w jaki aliasy wykonywania aplikacji systemu Windows działają w Git-Bash.
Jest to znany problem w MSYS2, w którym nie można uzyskać dostępu do punktów ponownej analizy systemu Windows za pomocą plików
IO_REPARSE_TAG_APPEXECLINK
Aby obejść ten problem , możesz użyć aliasu do wywołania funkcji, który jest używany
cmd.exe
pod maską.Dodaj do swojego
~/.bashrc
pliku:function python { cmd.exe /c "python $1 $2 $3";}
W przypadku Pythona zalecałbym po prostu wyłączenie aliasów wykonywania aplikacji, tak jak w zaakceptowanej odpowiedzi, ale w przypadku bibliotek, które są dystrybuowane wyłącznie za pośrednictwem sklepu Windows, takich jak
winget
, jest to najlepsza opcja.Dalsze czytanie
źródło
Doświadczyłem tego samego problemu, ale oprócz zablokowania Pythona, wszystkie programy w
Scripts
folderze również były. Pozostałe odpowiedzi o aliasach, ścieżce iwinpty
nie pomogły.W końcu odkryłem, że to mój program antywirusowy (Avast) postanowił z jakiegoś powodu z jakiegoś powodu po prostu zablokować wszystkie skompilowane skrypty Pythona.
Poprawka jest na szczęście łatwa: po prostu dodaj cały katalog Pythona do białej listy. Zobacz tutaj, aby uzyskać pełne wyjaśnienie.
źródło
Może możesz spróbować otworzyć wiersz polecenia z uprawnieniami administratora. (Uruchom jako administrator). U mnie działa przez większość czasu.
źródło
oszczędzaj czas: używaj
wsl and vscode remote extension
do poprawnej pracy z Pythonem nawet z win10 i nie zapomnijvirtualenv
! przydatne https://linuxize.com/post/how-to-install-visual-studio-code-on-ubuntu-18-04/źródło