인공지능/파이썬

PyCharm에서 UnauthorizedAccess 오류 해결 방법

백관구 2023. 1. 10. 10:47
반응형

안녕하세요 :)

 

    요즘 개발환경을 Visual Studio Code에서 PyCharm으로 옮기고 있는데요. 그 과정에서 겪은 오류들을 해결한 방법을 정리해보려고 합니다.

 


 

    처음 PyCharm 프로젝트에서 가상환경을 설치한 후 터미널에서 아래와 같은 보안 오류가 발생할 수 있습니다.

UnauthorizedAccess 오류 화면

    오류 발생 원인은 터미널에서 가상환경을 활성화하기 위해 가상환경 폴더(venv)에 위치한 activate.ps1 스크립트 파일을 실행해야 하는데, 보안 상의 이유로 권한이 제한되었기 때문입니다.

    따라서 오류를 해결하기 위해서는 권한 정책을 변경해주는 작업이 필요합니다. 해결 과정은 다음과 같습니다.

 

반응형

 

1. PowerShell 을 관리자 권한으로 실행

  • 윈도우 검색(단축키 : 윈도우 + s)에 PowerShell 검색 또는 [시작] → [Windows PowerShell] 메뉴
  • 오른쪽 마우스 클릭 후 '관리자 권한으로 실행' 클릭

Windows PowerShell 관리자 권한으로 실행

 

2. 현재 설정된 권한 정책 확인

ExecutionPolicy
  • 명령창에 ExecutionPolicy 입력 후 'Restricted'가 뜬다면 권한을 제한하고 있다는 것입니다.

ExecutionPolicy

 

3. 권한 변경

Set-ExecutionPolicy RemoteSigned
  • 명령창에 Set-ExecutionPolicy RemoteSigned 입력 후 Y를 입력하면 권한 변경이 'RemoteSigned'로 완료되며, PyCharm 터미널 창에서 가상환경이 제대로 활성화 됩니다.

Set-ExecutionPolicy RemoteSigned

 

※ 권한 종류

  • Restricted
    • 모든 스크립트를 실행하지 않습니다. 처음에 설정되는 옵션입니다.
    • Doesn't load configuration files or run scripts. The default execution policy for Windows client computers.
  • Unrestricted (권장 안 함)
    • 모든 스크립트를 실행할 수 있습니다. 서명되지 않은 스크립트(ex. 악성코드)도 실행할 수 있기 때문에 웬만하면 사용하지 않습니다.
    • Beginning in PowerShell 6.0, this is the default execution policy for non-Windows computers and can't be changed. Loads all configuration files and runs all scripts. If you run an unsigned script that was downloaded from the internet, you're prompted for permission before it runs.
  • RemoteSigned (추천)
    • 로컬 컴퓨터에서 작성한 모든 스크립트와 인터넷에서 다운로드한 스크립트 중 서명된 스크립트만 실행할 수 있습니다.
    • Requires that all scripts and configuration files downloaded from the Internet are signed by a trusted publisher. The default execution policy for Windows server computers.
  • https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.3
 

Set-ExecutionPolicy (Microsoft.PowerShell.Security) - PowerShell

The Set-ExecutionPolicy cmdlet changes PowerShell execution policies for Windows computers. For more information, see about_Execution_Policies. Beginning in PowerShell 6.0 for non-Windows computers, the default execution policy is Unrestricted and can't be

learn.microsoft.com

반응형