파이썬 가상환경 venv 만들기 — 생성부터 활성화·삭제까지
파이썬 가상환경 venv란?
파이썬 가상환경(venv)은 프로젝트마다 독립된 패키지 공간을 만들어 주는 도구입니다. 가상환경을 쓰면 A 프로젝트에서 Django 4.x를, B 프로젝트에서 Django 5.x를 충돌 없이 사용할 수 있습니다. venv는 파이썬 3.3부터 표준으로 내장되어 별도 설치가 필요 없습니다. 입문 단계부터 습관 들이면 좋은 필수 도구입니다.
1. 가상환경 만들기
프로젝트 폴더로 이동한 뒤 다음 명령으로 venv라는 이름의 가상환경을 만듭니다. 폴더 이름은 보통 venv 또는 .venv를 씁니다.
# Windows
python -m venv venv
# macOS / Linux
python3 -m venv venv
실행하면 현재 폴더에 venv 디렉터리가 생성됩니다.
2. 가상환경 활성화
운영체제와 셸에 따라 활성화 명령이 다릅니다.
# Windows (명령 프롬프트 cmd)
venv\Scripts\activate.bat
# Windows (PowerShell)
venv\Scripts\Activate.ps1
# macOS / Linux
source venv/bin/activate
활성화되면 프롬프트 맨 앞에 (venv) 표시가 붙습니다. 이 상태에서 설치하는 패키지는 가상환경 안에만 저장됩니다.
PowerShell 실행 정책 오류 해결
Windows PowerShell에서 "이 시스템에서 스크립트를 실행할 수 없습니다" 오류가 나면 다음 명령으로 현재 사용자에 한해 정책을 허용하세요.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
3. 패키지 설치와 확인
pip install requests
pip list # 설치된 패키지 목록
pip show requests # 특정 패키지 정보
가상환경이 활성화된 상태인지 확인하려면 파이썬 경로를 출력해 봅니다. 경로에 venv가 포함되어 있으면 정상입니다.
# Windows
where python
# macOS / Linux
which python
4. requirements.txt로 의존성 관리
현재 가상환경의 패키지 목록을 파일로 저장하면, 다른 환경에서 똑같이 재현할 수 있습니다.
# 현재 설치 목록 저장
pip freeze > requirements.txt
# 다른 환경에서 한 번에 설치
pip install -r requirements.txt
5. 비활성화와 삭제
가상환경에서 빠져나오려면 다음 명령을 입력합니다(모든 OS 공통).
deactivate
가상환경을 삭제하려면 폴더를 통째로 지우면 됩니다. 별도 제거 명령은 없습니다.
# Windows
rmdir /s /q venv
# macOS / Linux
rm -rf venv
자주 하는 실수
- 활성화를 깜빡함:
(venv)표시가 없는 상태에서pip install하면 전역에 설치됩니다. 항상 활성화 여부를 확인하세요. - venv 폴더를 git에 올림: 용량이 크고 환경 의존적이므로
.gitignore에venv/를 추가하고, 대신requirements.txt만 공유하세요. - python과 python3 혼동: Windows는 보통
python, macOS/Linux는python3를 씁니다. 환경에 맞는 명령을 사용하세요. - 가상환경 폴더 이동: venv는 경로가 고정되어 폴더를 옮기면 깨질 수 있습니다. 옮겼다면 새로 만드는 편이 안전합니다.
venv 명령 빠른 정리
| 작업 | Windows | macOS / Linux |
|---|---|---|
| 생성 | python -m venv venv | python3 -m venv venv |
| 활성화 | venv\Scripts\activate | source venv/bin/activate |
| 비활성화 | deactivate | deactivate |
자주 묻는 질문
Q. venv와 conda는 무엇이 다른가요?
venv는 파이썬 표준 내장 도구로 파이썬 패키지만 관리합니다. conda는 파이썬 외에 C 라이브러리 등도 관리하는 별도 배포판으로, 데이터 과학 분야에서 많이 쓰입니다. 일반적인 웹·앱 개발에는 venv로 충분합니다.
Q. 가상환경마다 파이썬 버전을 다르게 쓸 수 있나요?
네. 가상환경은 만들 때 사용한 파이썬 버전을 따릅니다. 여러 버전을 함께 관리하려면 pyenv(macOS/Linux)나 공식 런처 py -3.11 -m venv venv(Windows)를 활용하세요.
Q. 가상환경을 매번 만들기 번거로워요.
프로젝트별로 하나씩 만드는 것이 정석입니다. 다만 requirements.txt를 잘 관리하면 새 환경 구성이 명령 한 줄로 끝나므로 부담이 크지 않습니다.