Skip to main content

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/ 폴더가 생성되며, 구조는 다음과 같음:
.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

  • 활성화되면 프롬프트에 (venv)와 같이 표시됨

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

pip install requests
  • 설치된 패키지는 전역이 아니라 .venv 내부에 저장됨

3.4 가상 환경 비활성화

deactivate
  • 현재 세션에서 .venv 연결이 해제됨

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


4.1 Python 확장 설치

  • 단축키: Ctrl + Shift + X → "Python" 검색 후 설치

4.2 인터프리터 직접 선택

  • VSCode 하단 상태바 > Python 인터프리터 클릭
  • .venv 내부의 Python 실행 파일 선택

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
  • 현재 .venv에 설치된 모든 패키지 + 버전이 저장됨

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

pip install -r requirements.txt
  • 똑같은 버전으로 환경을 재구성 가능 (협업 시 필수)

6. Git 관리 시 주의사항

  • .venv/ 디렉터리는 절대 Git에 포함시키지 말 것
  • .gitignore에 아래 내용 추가:
.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