프로젝트마다 다른 패키지 버전이 필요할 때가 있다. 가상환경은 전역 환경에 설치한 패키지가 시스템 전체에 영향을 주는 것을 방지한다. 파이썬 외에도 많은 언어들이 프로젝트마다 독립적인 실행 환경을 지원하고 있다.
자바스크립트(Node.js) 생태계에서는 npm을 사용해 각 프로젝트의 루트에 node_modules 디렉터리를 만들어 의존성을 자동으로 분리한다. 별도의 환경을 활성화할 필요 없이, 프로젝트 폴더 안에서만 해당 패키지들이 적용된다. 패키지 정보는 package.json에, 잠금 정보는 package-lock.json 또는 yarn.lock에 저장된다.
반면, 파이썬은 명시적으로 가상환경을 생성하고 활성화하는 방식을 채택하고 있다. venv라는 기본 내장 모듈을 사용하면 손쉽게 가상환경을 생성할 수 있다. 설치한 패키지는 가상환경 내부의 lib/site-packages 디렉터리에 저장되며, 전역 환경과 철저히 분리된다.
1. 가상환경 생성
python3 -m venv 가상환경이름
2. 가상환경 활성화
source 가상환경이름/bin/activate
3. VS Code에서 가상환경 선택
Command Palette(⌘+Shift+P / Ctrl+Shift+P) 열고 Python: Select Interpreter 검색. 목록에서 생성한 가상환경 이름 선택
💡왜 터미널에 명령어도 입력하고도 VS Code 에서 설정을 별도로 해야 할까?
터미널에 입력한 명령어는 VS Code의 실행 환경 전체에는 자동으로 적용되지 않는다. VS Code는 터미널과 에디터 / 실행 환경 을 분리된 영역으로 다룬다. 그래서 터미널에서 가상환경을 수동으로 활성화해도 그 터미널 세션에서는 정상 작동하지만, VS Code 전체(디버깅, 코드 자동완성 등)에는 영향을 주지 않는다. VS Code에 인터프리터를 명시적으로 선택하면 .vscode/settings.json에 자동 저장된다.
4. 패키지 일괄 설치
pip3 install -r requirements.txt
requirements.txt는 파이썬 프로젝트에서 필요한 패키지 목록과 버전 정보를 기록한 텍스트 파일이다.
5. 설치된 패키지 및 버전 확인
pip3 list
6. 가상환경 비활성화
deactivate
'Python' 카테고리의 다른 글
| 파이썬 lambda (1) | 2024.02.24 |
|---|