본문 바로가기
프로그래밍/Python

Python venv로 가상 환경 관리하는 방법

by 허구의 2025. 7. 3.
728x90

Python 가상 환경 venv 사용법 정리

Python 프로젝트를 진행할 때 패키지 충돌, 버전 관리, 글로벌 오염 등의 문제를 방지하려면 가상 환경(virtual environment)을 사용하는 것이 필수입니다. Python에서는 표준 라이브러리로 제공되는 venv 모듈을 이용하여 손쉽게 가상 환경을 생성하고 관리할 수 있습니다. 해당 글에서는 venv 사용법에 대해 정리합니다.


가상 환경이란?

가상 환경(Virtual Environment)은 **Python 실행 환경과 패키지를 특정 프로젝트에만 한정해서 사용하는 공간**입니다. 프로젝트마다 독립적인 pipsite-packages 디렉터리를 갖기 때문에, 전역 Python 환경과 분리되어 안전하게 패키지를 관리할 수 있습니다.

가상 환경을 사용하면 다음과 같은 장점이 있습니다:

  • 프로젝트마다 서로 다른 패키지 버전을 유지할 수 있음
  • 전역 Python 환경을 오염시키지 않음
  • 팀 개발 시 requirements.txt로 의존성 공유가 용이함

venv로 가상 환경을 생성하는 방법

표준 라이브러리로 venv 모듈이 포함되어 있습니다. 아래 명령어로 가상 환경을 생성할 수 있습니다:

python -m venv myenv

 

myenv 디렉터리에 새로운 가상 환경이 생성됩니다.

이 안에는 독립적인 Python 인터프리터pip가 포함되어 있습니다.

가상 환경 활성화

가상 환경을 활성화하면 해당 환경에 설치된 패키지를 사용할 수 있게 됩니다.

 

Windows (CMD):

myenv\Scripts\activate

 

Windows (PowerShell):

.\myenv\Scripts\Activate.ps1

 

macOS / Linux / WSL:

source myenv/bin/activate

 

활성화되면 프롬프트 앞에 (myenv) 표시가 나타납니다. 이 상태에서 pip install(예를 들어 pip install -r requirements.txt)을 하면 전역 폴더는 영향을 주고 않고 해당 가상 환경에만 패키지가 설치됩니다.

가상 환경 비활성화

가상 환경을 비활성화하려면 다음 명령어를 입력합니다:

deactivate

 

프롬프트에서 (myenv)가 사라지면 성공적으로 비활성화가 된 것 입니다.

그럼 시스템 기본 Python 환경으로 돌아갑니다.


패키지 설치 및 requirements.txt 저장

구성해놓은 환경을 다시 같은 환경으로 재현하기 위해서는 requirements.txt로 설치한 패키지들을 관리하는 것이 좋습니다. 예를 들어 Flask와 requests 패키지를 설치하고:

pip install flask requests

 

설치된 패키지를 아래와 같이 requirements.txt로 저장할 수 있습니다.

pip freeze > requirements.txt

 

 


venv와 virtualenv의 차이

Python 3만 쓴다면 venv로 충분합니다. 복잡한 구조나 도구 연동이 필요한 경우에는 virtualenv 또는 poetry, pipenv 등을 고려할 수 있습니다.

 

감사합니다.

728x90