윈도우에서 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 으로 변경합니다.
다시 실행하면 정상적으로 가상환경의 파이썬을 실행할수있습니다.