본문 바로가기
Artificial Intelligence/60. Python

[PYTHON] 가상환경 설정 완전 정복

by Papa Martino V 2025. 7. 27.
728x90

가상환경 설정 완전 정복
[PYTHON] 가상환경 설정

 

 

Python으로 개발을 시작하면서 가장 먼저 배우게 되는 중요한 개념 중 하나가 바로 가상환경(Virtual Environment)입니다. 의존성 관리의 혼란을 방지하고, 협업과 배포 환경의 일관성을 유지하기 위한 핵심 도구인 가상환경은, 초보부터 전문가까지 반드시 이해하고 있어야 할 기본입니다.

왜 가상환경이 필요한가?

  • 여러 프로젝트 간의 패키지 충돌 방지
  • 시스템 Python 환경을 보호
  • 개별 프로젝트에 맞는 Python 버전 및 패키지 설정
  • 배포 및 테스트 환경 일치 보장
  • 협업 시 동일한 개발 환경 공유

Python 가상환경 생성 방법

1. venv 모듈 사용

$ python -m venv env

env 폴더가 생성되며, 이 안에 독립적인 Python 환경이 구성됩니다.

2. 가상환경 활성화

  • Windows: env\\Scripts\\activate
  • macOS/Linux: source env/bin/activate

3. 비활성화

$ deactivate

pyenv와의 조합

pyenv는 다양한 Python 버전을 손쉽게 설치 및 전환할 수 있는 도구입니다. 특정 버전의 Python 환경을 기반으로 가상환경을 구성할 수 있어 더 유연한 프로젝트 관리를 지원합니다.

$ pyenv install 3.10.9
$ pyenv virtualenv 3.10.9 myenv
$ pyenv activate myenv

pipenv와 poetry - 새로운 선택지

pipenvpoetry는 가상환경 생성과 패키지 관리를 통합한 도구입니다. 현대적이고 깔끔한 워크플로우를 제공하며, 많은 오픈소스 프로젝트에서 사용되고 있습니다.

도구 가상환경 생성 패키지 관리 장점 단점
venv 수동 pip 내장 모듈, 가볍고 직관적 패키지 관리가 복잡
pipenv 자동 통합 Pipfile 지원, 종속성 자동 관리 약간 무겁고 느림
poetry 자동 통합 빌드 시스템 내장, 프로젝트 템플릿 제공 진입장벽이 다소 있음

의존성 관리 방법

가상환경을 활용하면서 가장 중요한 부분 중 하나는 의존성 파일을 잘 관리하는 것입니다. 일반적으로 다음과 같은 방법으로 정리합니다:

# 설치된 패키지를 저장
$ pip freeze > requirements.txt

# 다시 설치할 경우
$ pip install -r requirements.txt

실전 워크플로우 예시

  1. 프로젝트 디렉토리 생성
  2. python -m venv .venv로 가상환경 생성
  3. source .venv/bin/activate로 환경 활성화
  4. 필요한 패키지 설치 (pip install flask 등)
  5. pip freeze > requirements.txt로 의존성 저장
  6. 코드와 requirements.txt를 함께 버전 관리

자주 발생하는 실수 및 주의사항

  • 가상환경을 깜빡하고 패키지를 글로벌에 설치하는 실수
  • requirements.txt를 버전 없이 작성하여 설치 오류 발생
  • 가상환경을 Git에 커밋하는 실수 → .gitignoreenv/ 추가 필수

결론

Python에서의 가상환경 설정은 단순한 편의가 아닌 소프트웨어 생명주기 관리의 핵심입니다. 독립적인 환경은 유지보수를 단순하게 하고, 협업을 원활하게 하며, 무엇보다 예측 가능한 코드를 만듭니다. 이제 가상환경을 습관처럼 사용하는 것은 선택이 아닌 필수입니다.

출처

728x90