Post

[Python] 가상환경 venv 사용법

[Python] 가상환경 venv 사용법

🐍 왜 파이썬 가상환경(venv)을 써야 할까?

파이썬 프로젝트를 진행하다 보면 “A 프로젝트에서는 Django 3.2가 필요한데, B 프로젝트에서는 4.0이 필요하네?” 같은 상황이 발생합니다. 이때 시스템에 패키지를 전역으로 설치하면 버전 충돌로 인해 코드가 깨질 수 있습니다. 😱

가상환경(Virtual Environment)은 프로젝트마다 독립된 방을 만들어 주는 것과 같습니다.

  • 의존성 분리: 프로젝트별로 필요한 패키지 버전을 독립적으로 관리합니다.
  • 깔끔한 환경: 시스템 파이썬 환경을 더럽히지 않고 필요한 것만 골라 설치합니다.
  • 협업 용이: 팀원들과 동일한 패키지 환경을 공유하기 매우 쉬워집니다.

🛠️ 1. 가상환경 생성하기

프로젝트 루트 폴더(예: my_project)로 이동한 뒤 아래 명령어를 입력합니다. 가상환경 이름은 관례적으로 venv를 가장 많이 사용합니다.

기본 생성

1
2
# python -m venv [가상환경이름]
python -m venv venv

특정 버전으로 생성 (설치된 경우)

1
2
3
4
5
# Windows
py -3.10 -m venv venv

# macOS / Linux
python3.10 -m venv venv

Tip: --system-site-packages 옵션을 붙이면 시스템에 이미 설치된 전역 패키지들을 포함한 상태로 가상환경을 시작할 수 있습니다.


🚀 2. 가상환경 활성화 & 비활성화

가상환경을 만들었으면 그 ‘방’으로 들어가야 합니다. 운영체제에 따라 명령어가 다르니 주의하세요!

활성화 (Activate)

운영체제터미널 (Shell)명령어
WindowsCMD / PowerShellvenv\Scripts\activate
macOS / Linuxbash / zshsource venv/bin/activate

활성화되면 터미널 프롬프트 앞에 (venv)라는 표시가 나타납니다.

비활성화 (Deactivate)

작업이 끝났다면 어느 환경에서든 아래 명령어 한 줄이면 됩니다.

1
deactivate

📦 3. 패키지 관리 (설치 및 공유)

가상환경이 활성화된 상태에서 패키지를 관리하는 방법입니다.

패키지 설치 및 확인

1
2
3
pip install pandas       # 설치
pip uninstall pandas     # 삭제
pip list                 # 설치된 패키지 목록 확인

협업의 핵심: requirements.txt

내가 사용한 패키지 목록을 파일로 만들어 팀원에게 전달하거나, 서버에 배포할 때 사용합니다.

1
2
3
4
5
# 1. 현재 환경의 패키지 목록 추출
pip freeze > requirements.txt

# 2. 파일에 기록된 패키지 한 번에 설치 (새 환경에서)
pip install -r requirements.txt

⚠️ 4. 주의사항 (Git 관리)

가상환경 폴더(venv/)는 용량이 크고 사용자의 로컬 경로에 의존적입니다. 따라서 Git에 절대 올리지 않습니다. 🙅‍♂️

.gitignore 파일에 반드시 아래 내용을 추가해 주세요.

1
2
3
4
# .gitignore
venv/
__pycache__/
*.pyc

참고 자료: venv와 virtualenv 차이

This post is licensed under CC BY 4.0 by the author.