파이썬 가상환경
독립적인 프로젝트 위한 개별적인 공간, 여러 프로젝트를 할 때 각 프로젝트의 '의존성'과 '라이브러리'를 구분하여 관리, 한 시스템에서 서로 다른 버전의 파이썬 라이브러리를 사용할 수 있게 해준다.
가상환경 사용의 이점
- 프로젝트 분리 : 다양한 프로젝트에서 서로 다른 라이브러리 버전을 사용할 수 있어, 한 프로젝트에서의 변경이 다른 프로젝트에 영향을 미치지 않는다.
- 의존성 관리 : 프로젝트별로 필요한 라이브러리와 버전을 관리할 수 있어, 코드의 호환성 및 재현성을 높일 수 있다.
- 개발 환경 일관성 : 다른 개발자와 협업 시, 같은 환경에서 작업해, 발생할 수 있는 문제를 최소화한다.
Conda 가상환경
Conda란?
오픈소스 패키지 관리 시스템 및 환경 관리 시스템. 데이터 과학과 기계 학습 프로젝트에 유용하다.
복잡한 데이터 과학 라이브러리를 쉽게 설치하고 관리할 수 있다.
Conda 설치 방법
Anaconda, Miniconda가 있다. Anaconda는 데이터 과학에 필요한 많은 라이브러리를 포함하고 있으며, Miniconda는 더 가볍고 필요한 패키지만 설치할 수 있다.
Conda로 가상환경 생성 및 활성화
맥/리눅스
conda create --name env_name python=3.12
conda activate env_name
윈도우
conda create --name env_name python=3.12
activate env_name
주요 Conda 명령어 및 사용법
가상환경 목록 보기
- 설치된 모든 Conda 가상환경의 목록을 표시한다.
conda env list
가상환경 제거
conda env remove --name env_name
패키지 설치
conda install package_name
패키지 목록 보기
- 현재 활성화된 가상환경에 설치된 모든 패키지와 그 버전을 표시
conda list
Conda 가상환경의 특징 및 장점
- 플랫폼 독립성 : 다양한 운영 체제에서 동일한 방식으로 사용할 수 있다.
- 다양한 언어 지원 : 파이썬, R, Ruby, Lua, Scala 등 다양한 언어의 패키지를 관리할 수 있다.
- 대규모 데이터 과학 프로젝트에 적합 : 데이터 과학과 관련된 복잡한 패키지들을 쉽게 설치하고 관리할 수 있다.
- 의존성 충돌 방지 : Conda는 패키지 간의 의존성을 체크해 충돌을 방지한다.
- 환경 복제 : conda env export > environment.yml 명령을 통해 가상환경을 yml 파일로 내보내 다른 시스템에서 동일한 환경을 재생성할 수 있다.
Conda는 파이썬 가상환경 관리뿐만 아니라 복잡한 데이터 과학 프로젝트에 강력하다. 이를 통해 프로젝트의 효율성과 재현성을 높일 수 있다.
Venv 가상환경
Venv란?
Venv (Virtual Environment)는 파이썬을 위한 가상 환경 생성 도구, 파이썬 3.3 부터 표준라이브러리에 포함되었으며, 개별 프로젝트에 독립된 파이썬 환경을 제공한다. 이를 통해 서로 다른 프로젝트에서 다른 버전의 라이브러리를 사용할 수 있으며 시스템의 파이썬 환경에 영향을 주지 않는다.
생성 및 활성화
# 가상환경 생성
python3 -m venv env_name
# 가상환경 활성화 (맥/리눅스)
source env_name/bin/activate
# 가상환경 활성화 (윈도우)
env_name/Scripts/activate
주요 Venv 명령어
가상환경 비활성화
deactivate
패키지 설치
pip install package_name
패키지 목록 확인
pip list
Venv 가상환경의 특징 및 장점
- 경량성과 편리성 : 기본 모듈이라 추가 설치가 필요 없고, 사용이 간단하다.
- 프로젝트별 독립성
- 시스템 파이썬 환경 보호
- 패키지 버전 관리 : pip freeze > requirements.txt 명령으로 현재 환경의 패키지 목록을 저장하고, 다른 환경에서 pip install -r requirements.txt 명령으로 동일한 환경을 구축할 수 있다.
Conda와 Venv 비교
기능적 차이점
1. 설치 및 관리
- Conda : 데이터 과학 및 머신러닝 프로젝트에 최적화된 다양한 패키지와 함께 제공, 복잡한 의존성 관리와 다양한 패키지 설치를 쉽게 할 수 있음
- Venv : 경량화된 도구, 필요한 기본적인 가상환경 기능을 제공
- 환경 구성
- Conda : 파이썬과 다양한 프로그래밍 언어 지원, 과학 계산 관련 패키지들과의 호환성이 뛰어남
- Venv : 파이썬 환경에 초점을 맞추어, 순수 파이썬 프로젝트에 적합
결론
- Conda : 데이터 과학, 머신러닝, 복잡한 의존성을 가진 프로젝트에 적합
- Venv : 일반적인 파이썬 개발, 가볍고 간단한 프로젝트에 추천
참고 사이트
https://velog.io/@tngus0325/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EA%B0%80%EC%83%81%ED%99%98%EA%B2%BD-Conda%EC%99%80-Venv%EC%9D%98-%EC%9D%B4%ED%95%B4