# 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 가상 환경 생성 ```bash python -m venv .venv ``` - `.venv/` 폴더가 생성되며, 구조는 다음과 같음: ```text .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 패키지 설치 (가상 환경 내부에서만 작동) ```bash pip install requests ``` - 설치된 패키지는 ****전역이 아니라 .venv 내부****에 저장됨 --- ### 3.4 가상 환경 비활성화 ```bash 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` 자동 설정 ```json { "python.defaultInterpreterPath": ".venv\\Scripts\\python.exe" } ``` → 저장 시 `.venv`가 자동으로 선택됨 --- ## 5. `requirements.txt`로 패키지 목록 관리 --- ### 5.1 현재 환경 저장 ```bash pip freeze > requirements.txt ``` - 현재 `.venv`에 설치된 모든 패키지 + 버전이 저장됨 --- ### 5.2 환경 재구성 (다른 PC에서 실행) ```bash pip install -r requirements.txt ``` - ****똑같은 버전으로 환경을 재구성**** 가능 (협업 시 필수) --- ## 6. Git 관리 시 주의사항 - `.venv/` 디렉터리는 ****절대 Git에 포함시키지 말 것**** - `.gitignore`에 아래 내용 추가: ```text .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`
---