파이썬 설치를 무사히 마치고 VS Code(Visual Studio Code)를 켜서 본격적으로 코딩을 시작하려고 마음먹은 초보자들이 마주하는 두 번째 관문이 있다. 바로 터미널 창에서 가상환경을 활성화하거나 특정 스크립트 파일을 실행하려고 할 때 나타나는 붉은색 에러 메시지다.
이 시스템에서 스크립트를 실행할 수 없으므로 [파일 경로]\activate.ps1 파일을 실행할 수 없습니다. 이 시스템에서는 스크립트를 실행할 수 없습니다. 자세한 내용은 about_Execution_Policies(
분명히 명령어는 맞게 입력했는데, 윈도우 보안 정책 때문에 실행이 가로막힌 것이다. 처음 이 화면을 마주하면 컴퓨터가 고장 났거나 내가 뭔가 큰 실수를 저지른 것만 같은 기분이 들 수 있다. 하지만 걱정할 필요 전혀 없다. 이는 윈도우의 기본 보안 설정이 지나치게 엄격해서 발생하는 현상일 뿐이다.
[소제목] 왜 '스크립트 실행 차단' 오류가 발생하는가
윈도우 운영체제에 내장된 기본 명령어 창인 파워셸(PowerShell)은 기본적으로 사용자가 임의의 스크립트(.ps1 파일 등)를 실행하는 것을 보안상의 이유로 엄격하게 금지하고 있다. 악성 스크립트가 사용자 모르게 실행되어 시스템을 망치는 것을 방지하기 위한 최소한의 안전장치인 셈이다.
하지만 개발 작업을 할 때는 파이썬 가상환경을 켜고 끄는 과정에서 이 'activate.ps1'이라는 파워셸 스크립트를 수시로 실행해야 한다.
윈도우는 이 스크립트가 내가 직접 만든 안전한 파일인지 알 수 없기 때문에 일단 차단부터 하고 본다.
따라서 파워셸의 보안 정책(Execution Policy) 등급을 살짝 낮추거나 현재 사용자 범위에서 스크립트 실행을 허용하도록 변경해 주어야 이 문제를 말끔히 해결할 수 있다.
[소제목] 파워셸 보안 정책 변경하는 단계별 방법
이 문제를 해결하기 위해서는 파워셸의 실행 정책을 변경해야 한다. 직접 겪어본 바에 따르면 관리자 권한으로 터미널을 열고 명령어 한 줄만 입력하면 간단하게 해결된다.
윈도우 시작 버튼을 누르고 'PowerShell'을 검색한다.
검색 결과에 나오는 [Windows PowerShell]에 마우스 우클릭을 하고 [관리자 권한으로 실행]을 누른다.
관리자 권한 창이 뜨면 다음 명령어를 정확하게 입력하고 엔터를 친다.
Set-ExecutionPolicy RemoteSigned
명령어를 입력하면 중간에 정말로 정책을 변경하겠냐고 묻는 경고 문구가 뜬다. 이때 키보드의 'Y' 또는 'A'(모두 예)를 누르고 엔터를 친다.
여기서 주의할 점은 반드시 '관리자 권한'으로 파워셸을 실행해야 정책 변경 권한이 주어진다는 것이다. 일반 권한으로 창을 열고 명령어를 치면 권한 거부 에러가 또다시 발생하므로 반드시 관리자 터미널을 이용해야 한다.
[소제목] 설정 완료 후 정상 작동 여부 확인하기
보안 정책을 성공적으로 변경했다면, 아까 열어두었던 VS Code를 완전히 껐다가 다시 켜는 것이 좋다. VS Code 내부 터미널이 변경된 시스템 정책을 실시간으로 반영하지 못할 수 있기 때문이다.
VS Code를 재시작한 뒤 하단 터미널 창에 가상환경 활성화 명령어나 스크립트 실행 명령어를 다시 입력해 보자.
예를 들어 가상환경 폴더가 'venv'라면 다음을 입력해 본다.
.\venv\Scripts\Activate
에러 메시지 없이 터미널 글자 앞에 (venv) 같은 초록색 혹은 파란색 가상환경 이름이 표시된다면 스크립트 차단 문제가 완벽하게 해결된 것이다.
[소제목] 초보자가 자주 하는 실수와 주의사항
보안 정책을 변경할 때 'RemoteSigned' 대신 'Unrestricted' 같은 너무 강력하게 개방된 옵션을 사용하는 것은 보안상 추천하지 않는다. 'RemoteSigned'는 로컬에서 직접 만든 스크립트는 자유롭게 실행하되, 인터넷에서 다운로드한 외부 스크립트는 서명이 있을 때만 실행하도록 허용하는 비교적 안전한 옵션이기 때문이다.
또한, 회사 컴퓨터나 공용 PC인 경우 보안 정책 변경 자체가 사내 보안 프로그램이나 그룹 정책(GPO)에 의해 원천 차단되어 있을 수 있다. 이럴 때는 임시방편으로 파워셸 대신 전통적인 명령 프롬프트(CMD) 환경을 터미널 기본값으로 설정하여 우회하는 방법도 고려해 볼 수 있다. 처음 개발 환경을 세팅할 때는 이처럼 권한 문제로 가로막히는 경우가 비일비재하므로, 터미널과 권한의 관계를 차분히 이해해 두는 것이 앞으로의 개발 공부에 큰 도움이 된다.
핵심 요약:
VS Code 터미널에서 스크립트 실행 차단 에러는 윈도우 파워셸의 엄격한 기본 보안 정책 때문에 발생한다.
관리자 권한으로 파워셸을 실행한 뒤 'Set-ExecutionPolicy RemoteSigned' 명령어로 실행 권한을 허용해 주어야 한다.
설정을 마친 후에는 반드시 VS Code를 재시작하고 가상환경 활성화 명령어로 정상 작동을 검증해야 한다.
다음 편 예고: 다음 편에서는 깃(Git)을 처음 연동할 때 꼭 알아야 할 글로벌 설정과 기본 명령어 흐름을 다룬다.
이 글을 읽으면서 터미널 권한 설정 때문에 막혔던 기억이 있거나 해결 과정에서 헷갈린 부분이 있다면 댓글로 편하게 남겨주세요!
0 댓글