Advanced Python

Python: .venv란?

1. 개요

.venv는 Python의 가상 환경(Virtual Environment) 을 구성하기 위해 생성되는 프로젝트 전용 디렉터리입니다.
Python 3.3부터 내장된 venv 모듈을 통해 생성되며, 각 프로젝트마다 독립된 Python 실행 환경과 패키지 저장소를 제공합니다.

✅ 목적: 패키지 격리
→ 프로젝트 간 의존성 충돌을 방지


2. 왜 .venv를 사용해야 할까?

항목

전역 설치

.venv

사용 시

패키지 위치

시스템 전체 (

site-packages

)

프로젝트 내부

.venv/Lib

프로젝트 간 버전 충돌 가능성

❌ 높음

✅ 격리됨

협업 시 재현성

❌ 낮음

requirements.txt

로 복제 가능

삭제/재생성의 유연성

❌ 전역에 영향

✅ 폴더 삭제로 완전 초기화 가능

Git 관리

❌ 위험

.gitignore

로 제외 가능

📌 전역 Python 환경은 시스템 툴, 다른 프로젝트에 영향을 줄 수 있으므로 가상 환경을 사용하는 것이 표준 개발 방식입니다.


3. .venv 설정 및 사용법 (VS Code 기준)


3.1 가상 환경 생성

python -m venv .venv
.venv/
├── Scripts/ (Windows) 또는 bin/ (Mac/Linux)
│   ├── activate
│   ├── python.exe
├── Lib/  (패키지 설치 공간)
├── pyvenv.cfg

3.2 가상 환경 활성화

OS

명령어

Windows

.venv\Scripts\activate

macOS/Linux

source .venv/bin/activate


3.3 패키지 설치 (가상 환경 내부에서만 작동)

pip install requests

3.4 가상 환경 비활성화

deactivate

4. VS Code에서 .venv 자동 인식 설정


4.1 Python 확장 설치


4.2 인터프리터 직접 선택

OS

경로 예시

Windows

.venv\Scripts\python.exe

macOS/Linux

.venv/bin/python


4.3 .vscode/settings.json 자동 설정

{
  "python.defaultInterpreterPath": ".venv\\Scripts\\python.exe"
}

→ 저장 시 .venv가 자동으로 선택됨


5. requirements.txt로 패키지 목록 관리


5.1 현재 환경 저장

pip freeze > requirements.txt

5.2 환경 재구성 (다른 PC에서 실행)

pip install -r requirements.txt

6. Git 관리 시 주의사항

.venv/

📌 가상 환경은 재생성 가능한 자원이므로, 소스 코드 저장소에 올릴 필요가 없음


✅ 요약 정리

항목

내용

사용 목적

프로젝트별 패키지 독립성 확보

생성 명령어

python -m venv .venv

활성화

Windows:

.\.venv\Scripts\activate

비활성화

deactivate

설치 위치

.venv/Lib/site-packages

VSCode 자동 인식

settings.json

에서

"python.defaultInterpreterPath"

설정

패키지 리스트 저장

pip freeze > requirements.txt

공유 환경 복원

pip install -r requirements.txt