Language/Python

파이썬 가상환경 venv, 왜 써야할까?

범데이 2025. 5. 22. 10:43

파이썬을 쓰다 보면 프로젝트마다 필요한 패키지나 버전이 제각각인 경우가 많다.

예를 들어 A 프로젝트는 Django 3.2를, B프로젝트는 Django 4.2를 써야 하는 상황.

이때 전역 환경에서 설치하면 서로 충돌이 날 수 밖에 없다.

 

그래서 필요한게 바로 가상환경(Virtual Environment)이다.

파이썬에서는 기본적으로 venv 라는 도구를 통해 가상환경을 만들 수 있다.

 

venv란?

venv는 프로젝트별 독립적인 파이썬 실행 환경을 만들어주는 기능이다.

같은 PC 안에서도 각각의 프로젝트가 서로 다른 패키지를 자유롭게 사용할 수 있도록 해준다.

 

 

왜 써야 할까?

  • 패키지 충돌 방지: 프로젝트마다 다른 버전의 패키지를 사용할 수 있음
  • 전역 환경 보호: 시스템 파이썬 환경이 오염되지 않음
  • 협업 및 배포 용이: requirements.txt만 있으면 동일 환경을 쉽게 재현 가능

 

venv 사용법 요약

1. 가상환경 생성

python -m venv venv

마지막 venv는 폴더 이름이다. .venv, env 등 원하는 이름으로 지정할 수 있다.

 

가상환경 생성시 위와 같이 폴더가 생성된다.

 

2. 가상환경 활성화

Window:

venv\Scripts\activate

 

Mac / Linux:

venv\Scripts\activate

 

성공하면 프롬프트에 (venv)라는 접두사가 표시된다.

 

3. 가상환경에서 패키지 설치

pip install flask

이렇게 설치된 패키지는 해당 가상환경에만 적용된다.

 

 

4.가상환경 비활성화(필요시)

deactivate

 

 

참고사항

1) 패키지 목록 저장과 복원

(해당 내용은 이전포스팅에도 상세히 작성되어 있다.)

 

현재 설치된 패키지 목록 저장:

pip freeze > requirements.txt

 

다른 환경에서 동일하게 설치:

pip install -r requirements.txt

 

 

2) .gitignore에 추가할 것

가상환경 폴더는 보통 Git에 올리지 않는다.

venv/

 

3) 쉘 스크립트로 자동화 예시

가상환경을 반복적으로 만들 경우, 다음과 같이 쉘 스크립트로 만들어두면 편리하다.

[create_venv.sh]

python -m venv .venv
echo "source .venv/bin/activate"

 

 

마무리

venv는 단순하지만 강력한 기능이다.

처음에는 낯설 수 있지만, 익숙해지면 프로젝트 관리가 훨씬 쉬워진다.

 

앞으로 파이썬 프로젝트를 시작할 때는

venv부터 만들고 시작하는 습관을 들이면 좋다.

728x90
반응형