윈도우의 powershell에서 가상환경이 활성화 안되는 이유

윈도우의 powershell에서 가상환경이 활성화 안되는 이유

반응형

인공지능 모델을 개발하고 웹으로 간단히 테스트할 목적으로 flask를 사용하려 한다.

powershell에서 가상 환경을 만들고 flask를 설치하려고 한다.

가상 환경 설치

C:> python3 -m venv venv Python3 사용할 때 권장하는 명령 C:> pip install virtualenv Python2 사용할 때 권장하는 명령

가상 환경 활성화

활성화 명령

> venv\Scripts\activate

비활성화 명령

(venv) > deactivate

실제 활성화 명령을 실행했을 때 아래 문제 발생

오류메시지: .\activate : 이 시스템에서 스크립트를 실행할 수 없으므로 D:\code\ex2021\venv\Scripts\Activate.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.

활성화 명령이 실패한 원인

가상화 실행 명령은 스크립트를 실행해야 하는데 PowerShell이 이를 제한하기 때문이다.

PowerShell 실행 정책

PowerShell의 실행 정책은 PowerShell이 구성 파일을 로드하고 스크립트를 실행하는 조건을 제어하는 안전 기능이다.

이 기능은 악성 스크립트의 실행을 방지하는 데 도움이 된다.

Windows 컴퓨터에서는 로컬 컴퓨터, 현재 사용자 또는 특정 세션에 대한 실행 정책을 설정할 수 있다.

그룹 정책 설정을 사용하여 컴퓨터와 사용자에 대한 실행 정책을 설정할 수도 있다.

로컬 컴퓨터 및 현재 사용자에 대한 실행 정책은 레지스트리에 저장된다.

PowerShell 프로필에서 실행 정책을 설정할 필요가 없다.

특정 세션에 대한 실행 정책은 메모리에만 저장되며 세션이 닫히면 손실된다.

해결책: 활성화 명령이 동작하도록 PowerShell 실행 정책을 변경

1. windows PowerShell 프로그램을 관리자 권한으로 실행

2. Get-ExecutionPolicy 명령어로 현재의 실행정책을 확인

3. 정책이 RemoteSigned가 아니면 Set-ExecutionPolicy 명령으로 RemoteSigned로 변경

4. 기본 PowerShell에서 가상 환경 활성화

부록. 파워쉘 실행 정책 (PowerShell execution policies) 요약

정책 셜명 스크립트 실행 악성 스크립트 실행 위험 AllSigned 스크립트가 실행될 수 있다 . 가능 있음 Bypass 차단 된 항목이 없으며 경고나 프롬프트도 없다 . 가능 있음 Default 기본 실행정책을 설정하며 아래와 같은 기본 값을 가진다 .

윈도우 클라이언트에는 Restricted

윈도우 서버에는 RemoteSigned - - RemoteSigned Windows 서버 컴퓨터에 대한 기본 실행 정책이다 가능 있음 Restricted Windows 클라이언트 컴퓨터에 대한 기본 실행 정책이다 . 불가능 없음 Undefined 현재 범위에 설정된 실행 정책이 없다 .

모든 범위의 실행 정책이 Undefined 이면

Windows 클라이언트 = Restricted,

Windows 서버 = RemoteSigned - - Unrestricted Windows 가 아닌 컴퓨터에 대한 기본 실행 정책이며 변경할 수 없다 . 가능 있음

반응형

from http://dreamlog.tistory.com/603 by ccl(S) rewrite - 2021-05-17 15:00:19