Windows 10에서 Python을 실행하려는 "권한 거부 됨"


126

Windows 10의 업데이트가 하룻밤 사이에 Python을 망가 뜨린 것처럼 보입니다. 실행하려고 python --version하면 "Permission Denied"오류가 반환되었습니다. 세 가지 업데이트가 없습니다. KB4507453, KB4506991 또는 KB4509096이 범인 인 것처럼 보이지만 문제의시기가 의심 스럽습니다. 롤백을 엉망으로 만드는 대신 내가 놓친 더 간단한 수정이 있기를 바랍니다.

파이썬에 대한 권한은 "-rwxr-xr-x"이며 어젯밤 패치를 설치 한 후 Windows 업데이트가 시스템을 재부팅하도록하는 것 외에는 아무것도 변경하지 않았습니다.

시스템 정보에 따르면 10.0.18362를 실행하고 있습니다.

또한 이것은 "관리자 권한으로 실행"을 사용하여 git-bash에서 Python을 실행 (시도)하는지 여부에 관계없이 발생하며, PowerShell을 사용하려고하면 앱이 설치되지 않은 것처럼 Windows 스토어가 열립니다. /c/Users/david/AppData/Local/Microsoft/WindowsApps/어떤 이유로 내 폴더 의 내용을 볼 수 없다고 생각합니다 .

또한 Python 3.7.4를 다시 설치하려고 시도했지만 도움이되지 않았습니다. 내가 봐야 할 다른 것이 있습니까?


아마도 Microsoft 웹 사이트를 확인할 가치가있을 것입니다. 어딘가에서 읽었습니다. 죄송합니다. 다른 사람들이이 업데이트에 문제가 있었던 곳을 기억할 수 없습니다. 빈 화면이라고 생각합니다. 어쨌든 하루나 이틀 안에 고칠 때까지 기다리는 것이 답이 될 수 있습니다.
개미

BTW, "파이썬에 대한 권한은 '-rwxr-xr-x'입니다."는 Windows에서 의미가 없을 것입니다. MSYS2 또는 git-bash와 같은 Unix와 유사한 환경에서보고 된 가짜입니다.
Eryk Sun

아니. 이것은 python.org의 Python 패키지입니다. 수년 동안 아무런 문제없이 작동 해 왔으며 최신 Windows 패치로 작동하기 시작했습니다.
notanumber

해결책을 찾았습니까? 나는 같은 문제가 있습니다.
정강이

불행하게도. Docker에서 대부분의 작업을 수행하면서 함께 살고 있습니다. 그렇게하면 내 결과를 게시 할 것입니다!
notanumber

답변:


205

내가 알 수있는 한, 이것은 최근에 Windows Store에 추가 된 Python 3.7 버전과의 충돌로 인해 발생했습니다. 이 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps폴더에 python.exe 및 python3.exe라는 두 개의 "스텁"이 추가 된 것 같습니다 . 제 경우에는 .NET Framework의 기존 Python 실행 파일 항목 앞에 삽입 되었습니다 PATH.

이 항목을 올바른 Python 폴더 아래로 (부분적으로) 이동하면 문제가 해결되었습니다.

이를 수정하는 두 번째 부분은 manage app execution aliasesWindows 검색 프롬프트에 입력하고 Python의 저장소 버전을 모두 비활성화하는 것입니다.

앱 실행 별칭 관리

두 번째 부분 만 수행하면 될 수도 있지만 내 시스템에서 두 가지를 모두 변경했으며 이제 모든 것이 정상으로 돌아 왔습니다.


56
(Microsoft 직원 및 CPython 핵심 개발자) 두 번째 부분 만 수행하면됩니다. 다음 안정 업데이트에서 수정 될 별칭 재설정 앱 업그레이드와 관련된 몇 가지 버그가 있었으므로 그때까지 한 번만 수정해야합니다. Insiders 업데이트를받는 동안 몇 번 더 수행해야 할 수 있습니다.
Zooba

10
또한 "Access Denied"문제는 Git Bash 버그입니다 (또는 Bash 포트를 유지 관리하는 사람 ... 누구인지 잘 모르겠습니다). 그리고 Store를 시작하는 것은 사람들이 Python을 설치하는 데 도움이되는 새로운 기능입니다. 일반 설치 프로그램을 사용하여 PATH에 추가 한 경우 새 리디렉터보다 우선해야하지만 그렇지 않은 경우 비활성화하는 방법을 위에서 발견했습니다.
Zooba

5
이 문제를 해결하기 위해 두 번째 부분 만 수행해야했습니다.
kennyB

6
나를 위해 git bash가 python을 찾기 위해 내 경로 (C : \ Users \ YourUsernameHere \ AppData \ Local \ Programs \ Python \ Python37)에 python을 추가해야했습니다
Niels

2
내 경로에 추가하고 맨 위로 이동하는 것이 Neils와 마찬가지로 내 솔루션이었습니다. Windows 스토어 스텁의 스텁 이름을 바꿀 수 없다는 사실은 매우 성가신 일입니다.
John W. Clark

26

연구

의 모든 %USERPROFILE%\AppData\Local\Microsoft\WindowsApps파일은 실제로 어딘가에있는 파일을 가리키는 자리 표시 자이며 C:\Program Files\WindowsApps권한이 완전히 거부됩니다.

이 문제를 복제하여 진술 한 내용이 올바른 방향으로 진행된 것 같습니다.

"그들은 배포 방법을 권한으로 망쳐 놓는 것에 대해 정말로 생각하지 않은 것 같습니다!"

출처 : Windows에서 Git Bash에 파일 린트를 설치할 수 없음 (Windows 스토어)

WindowsApps 배포 방법으로 인해 권한이 엉망이됩니다.

여기에 이미지 설명 입력 여기에 이미지 설명 입력 여기에 이미지 설명 입력 흥미롭게도 "Users"그룹은 특정 사용자뿐만 아니라 파일을 읽고 실행할 수 있지만 Administrators 그룹은 엄청나게 헤아릴 수없는 이유로 폴더 내용 만 나열 할 수 있습니다. 그리고 파일 탐색기에서 폴더에 액세스하려고 할 때 폴더 내용을 표시하는 것도 거부하므로 그에 대해 이상한 점이 있습니다.

흥미롭게도 pythonCMD에서 실행 해도 잘 작동 하지만 "WindowsApps"폴더가 상주하는 디렉터리에있는 파일을 나열 할 때 표시되지 않으며 폴더로 이동하려고하면 "Permission denied"오류가 발생합니다.

여기에 이미지 설명 입력

권한을 변경하려면 먼저 소유자를 변경해야하므로 소유자를 Administrators 그룹으로 변경했습니다. 그 후 관리자 그룹에 대한 권한을 모든 권한을 포함하도록 변경하려고 시도했지만 "액세스가 거부되었습니다"(마이크로 $ ucks, 변경하려고합니다!) 때문에이를 변경할 수 없습니다.

여기에 이미지 설명 입력

이 권한 오류는 너무 많은 파일에서 발생하여 Alt + C를 사용하여 반복 메시지에서 "계속"을 빠르게 클릭했지만 여전히 너무 오래 걸렸기 때문에 프로세스를 취소하여 다음 경고 메시지가 나타납니다.

여기에 이미지 설명 입력

이제 TrustedInstaller 사용자를 WindowsApps 폴더의 소유자로 다시 설정할 수 없습니다. 사용자 / 그룹 / 기본 제공 보안 원칙 / 기타 개체 목록에 표시되지 않기 때문입니다. *

여기에 이미지 설명 입력

* 실제로이 자습서 에 따라 NT Service\TrustedInstaller개체 이름 텍스트 상자 에 입력하여 소유자를 TrustedInstaller로 다시 바꿀 수 있습니다 .

해결책

해결책이 없습니다. 기본적으로 우리는 완전히 망가졌습니다. 품격있는 움직임, 마이크로 소프트.


12
(여기에 Microsoft 직원 및 CPython 핵심 개발자) 현재이 위치에서 실행 파일을 시작할 수 있지만 전역 별칭을 사용하도록 설정 한 경우에만 (앱 실행 별칭 관리에서) Windows에서 버그를 수정하고 있습니다. 현재 사용자를 위해 앱을 설치하기 만하면되도록 변경하려고합니다.
Zooba

4
관리자 권한으로 실행되는 dllhost.exe 인스턴스 (보안 셸 확장, rshx32.dll 호스팅)가 소유하고 있으므로 "폴더 내용 나열"액세스 (예 : 실행, 동기화 및 읽기)가 있으므로이 대화 상자를 통해 권한을 읽을 수 있습니다. 데이터, 속성 및 권한). 사용자 그룹의 항목은 일반 액세스 확인을위한 것이 아닙니다. 이는 WIN : // SYSAPPID 보안 속성, 즉 모든 앱의 존재 여부를 조건으로합니다. 각 앱의 하위 폴더는 사용자에게 읽기 액세스 권한을 부여하지만 실행 액세스는 사용자 지정 액세스 토큰을 설정하는 앱 링크를 통해 실행될 때 조건부입니다.
Eryk Sun

@ErykSun 그것은 내가 Windows 실행 및 권한에 대해 본 최초의 정보에 입각 한 답변입니다. 감사.
Ryan

나는 실제로 폴더에 대한 권한을 변경하려는 시도로 인한 결과를 여전히 다루고 있습니다. 특정 WinApps는 다음 지침을 따를 때까지 모두 실행을 중지 했지만 ( superuser.com/questions/1288014/… ) 이제 실행시 오류 메시지를 표시합니다. 이전 Win10 USB 이미지를 사용했기 때문에 권한이 잘못 설정되었을 수 있습니다.
라이언

1
@MarkSimpson이 스레드가 도움이되어 기쁩니다. 내가 무엇을 썼는지 확실하지 않습니다. 여기 댓글에 실제 답변을 게시 한 Microsoft 직원에게 감사드립니다.
라이언


12

이 문제는 너무 흔해서 여전히 지속되지 않습니다. 그리고 대부분의 답변과 지침은이를 해결하지 못합니다. Windows 10에서 수행 할 작업은 다음과 같습니다.

  1. environment variables시작 검색 창에 입력 하고 시스템 환경 변수 편집을 엽니 다 .

  2. 환경 변수 ...를 클릭하십시오 .

  3. 시스템 변수 섹션에서 키로 변수를 찾아 Path두 번 클릭합니다.

  4. 파이썬 파일을 가리키는 경로를 찾으십시오. 아마 없을 것입니다. 있는 경우 선택하여 삭제하십시오.

  5. Python 실행 파일의 경로로 설정된 새 변수를 만듭니다. 일반적으로 이것은입니다 C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Python38. 파일 탐색기를 통해 확인하십시오.

    참고 : AppData가 보이지 않으면 숨겨진 항목보기를 활성화 하지 않았기 때문입니다 .보기 탭을 클릭하고 숨겨진 항목 확인란을 선택합니다.

  6. Scripts디렉토리를 가리키는 다른 변수를 만듭니다 . 일반적으로 C:\Users\[YOUR USERNAME HERE]\AppData\Local\Programs\Python\Scripts.

  7. 터미널 및 시도 입력을 다시 시작 py, python, python3, 또는 python.exe.


5

PowerShell의 솔루션은 아니지만 MINGW64를 제외하고는 동일한 문제가 발생했습니다. 일반적으로 VSCode에서 터미널로 Linux 용 Windows 하위 시스템 (어쨌든하고 싶었 음)으로 전환하여 문제를 해결했습니다. 이 게시물은 이에 대해 잘 설명합니다.

Ubuntu 앱을 터미널로 사용하도록 VS Code (Windows)를 구성하는 방법

요약하자면:

1) Windows App Store에서 Ubuntu 설치

2) CMD-> wslconfig / setdefault Ubuntu에서 기본 bash 변경

--- VSCode 용

3) VSCode 다시 시작

4) VSCode에서 "terminal.integrated.shell.windows"를 "C : \ WINDOWS \ System32 \ bash.exe"로 변경합니다 (자세한 내용은 위의 게시물 참조).

이제 VSCode 및 WSL (Windows의 Ubuntu에서 Bash)에서 원활하게 실행됩니다. 적어도 일시적인 해결책이 될 수 있습니다.


5

WindowsApps가 문제를 해결하기 전에 로컬 Python 경로를 추가했습니다.

환경 변수> 경로

Bash Python-버전


2

해결 방법 : exe에서 Python을 설치 한 경우 아래 단계를 따르십시오.

1 단계 : Python 제거

2 단계 : 아래 스크린 샷 (노란색)에 강조 표시된대로 Python을 설치하고 Python 경로 확인란을 선택합니다.

이것은 나에게 문제를 해결했습니다.

여기에 이미지 설명 입력


2

나를 위해 manage app execution aliasespython3이 명령이 아니라는 오류가 발생하여 py대신 사용 python3하고 작동했습니다.

왜 이런 일이 일어나는지 모르겠지만 그것은 나를 위해 일했습니다.


1

가장 간단한 방법은 PATH 및 PYTHONPATH 환경 변수를 수정하여 적절한 Python 바이너리가 포함 된 폴더가 로컬 WindowsApp 폴더에 대해 검색되도록하는 것입니다. 제어판을 열고 "env"를 검색하여 환경 변수에 액세스 할 수 있습니다.


1

이는 Windows 앱 실행 별칭 이 Git-Bash에서 작동 하는 방식 때문 입니다.

Windows 재분석 지점에 액세스하지 못하는 MSYS2 의 알려진 문제 입니다.IO_REPARSE_TAG_APPEXECLINK

해결 방법으로 내부 에서 사용하는 함수 호출에 별칭을 지정할 수 있습니다 cmd.exe.

~/.bashrc파일에 다음을 추가하십시오. :

function python { cmd.exe /c "python $1 $2 $3";}

파이썬의 경우 허용되는 답변에서와 같이 앱 실행 별칭을 토글하는 것이 좋지만. 같은 Windows 스토어를 통해 독점적으로 배포되는 라이브러리의 winget경우 이것이 최선의 선택입니다.

추가 읽기


0

동일한 문제가 발생했지만 Python이 차단되는 것 외에도 Scripts폴더의 모든 프로그램도 차단 되었습니다. 별칭, 경로에 대한 다른 답변은 winpty도움이되지 않았습니다.

마침내 어떤 이유로 든 컴파일 된 모든 파이썬 스크립트를 차단하기로 하룻밤 사이에 결정한 바이러스 백신 (Avast)이라는 사실을 마침내 발견했습니다.

다행히도 수정은 간단합니다. 전체 Python 디렉토리를 허용 목록에 추가하기 만하면됩니다. 자세한 설명 은 여기 를 참조 하십시오 .


-1

관리자 권한으로 명령 프롬프트를 열어 볼 수 있습니다. (관리자 권한으로 실행). 대부분의 경우 나를 위해 작동합니다.


3
Python 실행 파일은 관리자 권한 없이도 CMD에서 작동합니다. 문제는 이것이 프로그래머에게 필수적인 도구이고 기본값 인 Git Bash에서 작동하지 않는다는 것입니다. 그리고 이것은 Python을위한 다른 모든 배포 방법에서도 작동합니다. 즉, 여기서도 작동해야한다는 의미입니다.
라이언

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.