Visual Studio Code(VSCode)에서 Python 파일을 실행하거나, 가상환경(virtualenv)을 활성화하려고 할 때, 다음과 같은 오류가 발생할수 있습니다.
스크립트 실행 오류 화면
“이 시스템에서 스크립트를 실행할 수 없으므로 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.”
이 오류는 윈도우11 PowerShell의 실행 정책(Execution Policy) 때문에 발생합니다. 보안상의 이유로 스크립트 실행을 제한하는 기능으로, 기본값으로 설정된 "Restricted" 정책이 원입니다. 해당 정책은 파PowerShell 명령어를 통해 간단히 변경하여 오류를 해결할 수 있습니다.
해결 방법: PowerShell 실행 정책 변경하기
PowerShell을 관리자 권한으로 실행
- 작업 표시줄 검색창에 PowerShell을 입력합니다.
- 검색 결과에서 "Windows PowerShell"을 마우스 오른쪽 버튼으로 클릭하고, 관리자 권한으로 실행을 선택합니다.
반드시 관리자 권한으로 실행해야 실행 정책을 변경할 수 있습니다.
Set-ExecutionPolicy RemoteSigned
PowerShell 창에서 위 명령어를 입력하고 Enter를 누릅니다.
명령어 입력후 실행 정책 변경 확인 요청 메세지가 나타날 수 있습니다 "Y"를 입력하고 Enter 키를 누릅니다.
실행 정책 옵션 설명
- Restricted: 기본값. 모든 스크립트 실행을 차단합니다.
- RemoteSigned: 로컬에서 생성한 스크립트는 실행 가능하지만, 인터넷에서 다운로드된 스크립트는 서명이 필요합니다.
- Unrestricted: 모든 스크립트를 실행할 수 있습니다.
설정을 변경한 후, 다시 Python 가상환경(virtualenv)을 활성화하거나 기존의 오류가 발생하였던 스크립트를 실행해 보세요. 오류가 발생하지 않고 정상적으로 실행됩니다.
보안 정책 바꿔도 되는걸까?
PowerShell의 실행 정책을 변경하면 스크립트를 실행할 수 있어 편리하지만, 보안 측면에서 주의가 필요합니다. 특히, 인터넷에서 다운로드한 스크립트를 실행하기 전에는 반드시 신뢰할 수 있는 소스인지 확인하세요. 요즘에는 스크립트형 악성코드도 유행하고 있어서 설정이 불필요한 경우에는 기본 값을 사용하는걸 권장합니다.
필요한 작업이 끝난 후 원래 상태로 되돌리고 싶다면 아래 명령어를 사용하여 실행 정책을 다시 "Restricted"로 설정할 수 있습니다.
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Restricted