메뉴 닫기

python venv 에 대하여

Python venv 에 대하여

 

python venv
python venv

 

이번 글은 Python venv 에 대해 소개해드리고자 작성한 글입니다.

Venv 는 프로젝트별로 독립된 Python 환경을 만들어 의존성 충돌 문제를 해결하는 도구이며, 특히 Python 3.3부터 표준 라이브러리에 포함된 공식 가상 환경 모듈입니다.

 

Venv 의 장단점은 다음과 같습니다.

venv의 장점

  1. 의존성 격리: 각 프로젝트마다 독립된 패키지 환경 구성 가능
  2. 버전 충돌 방지: 서로 다른 버전의 라이브러리가 필요한 프로젝트들 간 충돌 예방
  3. 시스템 Python 보호: 전역 Python 환경을 오염시키지 않음
  4. 쉬운 환경 복제: requirements.txt를 통해 동일한 환경 쉽게 재생성
  5. 표준 라이브러리: 별도 설치 없이 Python에 내장됨

venv의 단점

  1. 모든 프로젝트마다 패키지 재설치: 동일한 패키지도 가상환경마다 개별 설치 필요
  2. 디스크 공간 차지: 여러 가상환경이 동일한 패키지의 다른 복사본을 가질 수 있음
  3. 활성화/비활성화 필요: 사용 시 명시적으로 활성화 필요
  4. 복잡성 증가: 초보자에게는 추가적인 학습 필요
  5. Conda 등 다른 도구보다 기능 제한적: 비-Python 의존성 관리 기능 없음

 

명령어 소개

1. 가상환경 생성하기

# 기본 문법
python -m venv 가상환경이름

# 예시: ‘myproject’ 이름의 가상환경 생성
python -m venv myproject

 

2. 가상환경 활성화하기

Windows:

# CMD
myproject\Scripts\activate.bat

# PowerShell
myproject\Scripts\Activate.ps1

macOS/Linux:

source myproject/bin/activate

활성화 후 명령 프롬프트 앞에 (myproject) 와 같이 가상환경 이름이 표시됩니다.

 

3. 패키지 설치 및 관리

# 패키지 설치
pip install package-name

# 특정 버전 설치
pip install package-name==1.2.3

# 여러 패키지 설치
pip install package1 package2

# 설치된 패키지 목록 확인
pip list

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

# requirements.txt 파일로부터 패키지 설치
pip install -r requirements.txt

 

4. 가상환경 비활성화

deactivate

 

5. 가상환경 삭제

단순히 가상환경 폴더를 삭제하면 됩니다:

# Windows
rmdir /s /q myproject

# macOS/Linux
rm -rf myproject

 

해당 명령어에 대한 예시와 타 컴퓨터로 환경을 복제하는 방법은 다음과 같습니다.

실제 작업 흐름 예시

# 1. 새 프로젝트 디렉토리 생성
mkdir my_flask_app
cd my_flask_app

# 2. 가상환경 생성
python -m venv venv

# 3. 가상환경 활성화
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate

# 4. 필요한 패키지 설치
pip install flask
pip install pytest

# 5. 의존성 기록
pip freeze > requirements.txt

# 6. 작업 완료 후 가상환경 비활성화
deactivate

다른 컴퓨터에서 환경 복제하기

# 1. 프로젝트 클론 또는 다운로드
git clone https://github.com/username/my_flask_app.git
cd my_flask_app

# 2. 새 가상환경 생성
python -m venv venv

# 3. 가상환경 활성화
# Windows
venv\Scripts\activate
# macOS/Linux
source venv/bin/activate

# 4. 의존성 설치
pip install -r requirements.txt

# 5. 이제 프로젝트 실행 가능
python app.py

이처럼 Python venv는 프로젝트별 의존성 관리를 단순화하고 일관된 개발 환경을 유지하는 데 매우 유용한 도구입니다.

 

Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x