본문 바로가기
Python

[Python]python venv(가상환경설정) 및 실행시 보안오류 해결방법

by 아키트리 2024. 7. 4.

윈도우에서 python을 프로젝트마다 설치하는 패키지 및 라이브러리의 충돌을 피하기위해 가상환경을 설정하여 진행하면 이후 다른 프로젝트에서 다른버전에 패키지/라이브러리를 사용시 호환성 등의 이슈로 에러가 나오는 경우를 피할수 있습니다. 

 

버전 문제로 에러가 나와 파이썬을 삭제하고 재설치하는 수고를 덜하기 위해서는 가상환경설정이 필수라고 생각됩니다.

가상환경을위한 설정방법
  * 저는 vscode에서 작업을 하였기 때문에 powershell에서 입력을 하였습니다.

      (vscode 실행하여 ctrl+`)

1. 가상환경 생성

 python -m venv test 

  : 여기서 test는 가상환경 이름입니다. 해당 명령어 실행시 해당이름으로 폴더가 생성됩니다.

 

2. 해당폴더로 이동

cd test

 

3. 가상환경 활성화

.\Scripts\Activate.ps1

  * cmd 환경에서는 Scripts\activate.bat

 

4. (test) 폴더> 처럼나온다면 정상적으로 가상환경으로 들어갔고, 원하는 패키지를 설치하여 진행하면 됩니다.

 

 

vscode를 이용하다보면 터미널이 기본적으로 powershell로 되어있는데, 실행시 아래와 같은 에러가 나올 수 있다.

D:\Work\python2024> python -m venv test
PS D:\Work\python2024> cd .\test\
PS D:\Work\python2024\test> .\Scripts\Activate.ps1
.\Scripts\Activate.ps1 : 이 시스템에서 스크립트를 실행할 수 없으므로 D:\Work\python2024\test
\Scripts\Activate.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(http
s://go.microsoft.com/fwlink/?LinkID=135170)를 참조하십시오.
위치 줄:1 문자:1
+ .\Scripts\Activate.ps1
+ ~~~~~~~~~~~~~~~~~~~~~~


    + CategoryInfo          : 보안 오류: (:) [], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

 

이는 powershell 의 실행 정책에 의한 에러로 아래명령어로 정책확인가능합니다.

Get-ExecutionPolicy

 기본 설정이라면 "Restricted"  라고 출력이 나올 겁니다.

  • Restricted: 기본 정책으로, 스크립트를 실행할 수 없음.
  • AllSigned: 신뢰할 수 있는 퍼블리셔가 서명한 스크립트만 실행 가능.
  • RemoteSigned: 인터넷에서 다운로드한 스크립트는 서명되어야 하며, 로컬 스크립트는 서명이 필요 없음.
  • Unrestricted: 모든 스크립트를 실행 가능.

 

 아래처럼 입력하여 정책을 변경합니다.

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

 * 현재 사용자에 대해 정책을 RemoteSigned 으로 변경합니다.

 

다시 실행하면 정상적으로 가상환경의 파이썬을 실행할수있습니다.