반응형
Notice
Recent Posts
Recent Comments
관리 메뉴

꿈꾸는 사람.

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

Python

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

현무랑 니니 2021. 5. 17. 14:46
반응형

인공지능 모델을 개발하고 웹으로 간단히 테스트할 목적으로 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가 아닌 컴퓨터에 대한 기본 실행 정책이며 변경할 수 없다. 가능 있음

 

반응형
Comments