conda와 venv는 프로젝트별로 독립적인 파이썬 환경을 만들어주는 가상 환경 도구이지만, 관리 범위와 목적에서 차이가 있습니다.
miniconda 와 파이썬 비교
아나콘다 (Conda) 환경
- 설명: conda는 아나콘다(Anaconda) 또는 미니콘다(Miniconda)를 설치하면 사용할 수 있는 패키지 및 환경 관리 시스템입니다. 데이터 과학 분야에 특화되어 있으며, 파이썬 버전 자체와 패키지는 물론, 파이썬이 아닌 라이브러리(예: CUDA, MKL 등)까지 통합 관리합니다.
- 장점:
- 강력한 의존성 관리: NumPy, SciPy, TensorFlow처럼 복잡한 비(非)파이썬 라이브러리에 의존하는 패키지들을 안정적으로 설치하고 관리할 수 있습니다.
- 파이썬 버전 관리: 프로젝트마다 다른 버전의 파이썬(예: 3.8, 3.10)을 쉽게 설치하고 전환할 수 있습니다.
- 데이터 과학에 최적화: 데이터 분석, 머신러닝에 필요한 대부분의 패키지가 사전 컴파일되어 있어 설치가 편리합니다.
- 단점:
- 무거운 설치: 아나콘다는 다양한 패키지를 포함하고 있어 초기 설치 용량이 큽니다. (가벼운 버전을 원하면 미니콘다를 사용합니다.)
- 상대적으로 느림: venv에 비해 환경을 만들거나 패키지를 설치하는 속도가 조금 느릴 수 있습니다.
파이썬 가상 환경 (venv)
- 설명: venv는 파이썬 3.3 버전부터 파이썬에 기본으로 내장된 가상 환경 도구입니다. 현재 시스템에 설치된 파이썬 인터프리터를 기반으로, 해당 프로젝트만을 위한 독립된 패키지 설치 공간을 만듭니다. 패키지 설치 및 관리는 pip를 사용합니다.
- 장점:
- 가볍고 빠름: 파이썬 외에 추가 설치가 필요 없고, 환경 생성 속도가 빠릅니다.
- 파이썬 표준: 파이썬의 공식적인 가상 환경 방식으로, 대부분의 순수 파이썬 프로젝트에서 표준처럼 사용됩니다.
- 단순함: 사용법이 매우 간단하고 직관적입니다.
- 단점:
- 파이썬 패키지만 관리: 파이썬 패키지만 격리할 뿐, 파이썬 버전 자체나 시스템 라이브러리는 관리하지 못합니다.
- 복잡한 의존성 한계: C/C++ 컴파일이 필요한 패키지나 시스템 라이브러리와의 의존성이 복잡할 경우 설치에 실패할 수 있습니다.
요약 및 추천
| 구분 | Conda | venv |
| 주요 목적 | 패키지 + 파이썬 버전 + 외부 라이브러리 관리 | 파이썬 패키지 격리 |
| 관리 도구 | conda | pip |
| 무게 | 무거움 | 가벼움 |
| 파이썬 버전 관리 | 가능 | 불가능 (별도 도구 pyenv 필요) |
- Conda를 추천하는 경우:
- 데이터 분석, 머신러닝, 과학 컴퓨팅 프로젝트를 진행할 때
- TensorFlow, PyTorch 등 복잡한 라이브러리를 사용할 때
- 여러 파이썬 버전을 전환하며 작업해야 할 때
- venv를 추천하는 경우:
- 웹 개발(Django, Flask), 간단한 자동화 스크립트 등 순수 파이썬 프로젝트를 진행할 때
- 가볍고 빠른 환경을 선호할 때
- 프로젝트의 의존성이 복잡하지 않을 때
conda는 Anaconda Prompt 또는 터미널에서 모든 명령어를 실행합니다.
- 환경 생성: python=3.9 부분에 원하는 파이썬 버전을 지정합니다.
conda create -n my_conda_env python=3.9 - 환경 활성화:
conda activate my_conda_env - 패키지 설치:
conda install numpy pandas - 설치된 패키지 목록 확인:
conda listconda lis 와 pip list가 둘 다 사용은 가능하나 conda list가 더 넓은 범위의 정보를 보여주는, 상위 관리자의 시점이고 pip list는 파이썬 패키지에만 집중하는 실무자의 시점입니다.
conda list vs pip list 비교
구분 conda list pip list 표시 범위 파이썬 패키지 + Conda가 관리하는 모든 패키지 (예: openssl 같은 비(非)파이썬 라이브러리 포함) 파이썬 패키지만 표시 패키지 출처 conda 채널 (anaconda, conda-forge 등) 또는 pip로 설치된 경우 <pip> 또는 pypi 로 출처를 명시 주로 PyPI (출처를 별도로 보여주진 않음) 상세 정보 패키지명, 버전, 빌드(Build) 정보, 채널 등 상세 정보 제공 패키지명, 버전 정보만 제공 - 환경 비활성화:
conda deactivate - 환경 목록 보기: 설치되어 있는 가상화 (c:\user\users\.conda\envs\ 폴더에 있음)
conda env list
venv 환경 사용법
venv는 파이썬이 설치된 터미널(Command Prompt, PowerShell, Terminal 등)에서 사용합니다.
- 환경 생성: my_venv_env 라는 이름의 폴더가 현재 위치에 생성됩니다.
python -m venv my_venv_env - 환경 활성화: 운영체제에 따라 명령어가 다릅니다.
- Windows:
-
DOS
.\my_venv_env\Scripts\activate - macOS / Linux:
source my_venv_env/bin/activate
- 패키지 설치: pip를 사용합니다.
pip install django requests - 설치된 패키지 목록 확인:
pip list - 환경 비활성화:
deactivate
Conda에서 사용 가능한 Python 버전
Conda는 다양한 버전의 파이썬을 패키지처럼 취급하여 쉽게 설치하고 관리할 수 있습니다. Anaconda 채널에 등록된 거의 모든 버전의 파이썬을 사용할 수 있습니다.
- 사용 가능한 파이썬 버전 확인 방법 Anaconda Prompt 또는 터미널에 아래 명령어를 입력하면 설치 가능한 파이썬 버전 전체 목록을 확인할 수 있습니다.이 명령어를 통해 원하는 버전(예: 3.8, 3.9, 3.10, 3.11 등)이 있는지 확인하고, conda create -n myenv python=3.9와 같이 특정 버전을 지정하여 새 환경을 만들 수 있습니다.
conda search python
venv에서 Python 버전 관리
venv는 파이썬 버전을 직접 관리하는 기능이 없습니다.
venv는 가상 환경을 만들 때, 명령어를 실행하는 그 시점의 파이썬 인터프리터를 그대로 복제하여 사용합니다. 예를 들어, 시스템의 기본 파이썬이 3.10 버전이라면, python -m venv myenv 명령으로 생성된 가상 환경은 무조건 파이썬 3.10 버전을 사용하게 됩니다.
- 다른 버전의 파이썬을 사용하려면? venv로 다른 버전의 파이썬 환경을 만들고 싶다면, 시스템에 해당 파이썬 버전이 이미 설치되어 있어야 합니다.
- 방법 1: 직접 파이썬 실행 파일 지정 만약 시스템에 3.9와 3.10 버전이 모두 설치되어 있다면, 특정 버전을 직접 지정하여 환경을 만들 수 있습니다.
# Python 3.9 버전으로 환경 생성 python3.9 -m venv my_python39_env - 방법 2: pyenv와 같은 외부 도구 사용 pyenv와 같은 별도의 파이썬 버전 관리 도구를 사용하여 시스템에 여러 버전의 파이썬을 설치하고, 원하는 버전을 선택한 뒤에 venv를 생성하는 것이 일반적인 관리 방법입니다.
- 방법 1: 직접 파이썬 실행 파일 지정 만약 시스템에 3.9와 3.10 버전이 모두 설치되어 있다면, 특정 버전을 직접 지정하여 환경을 만들 수 있습니다.
pip도 작동하지만, 두 도구의 작동 방식과 관리 범위가 달라 함께 사용할 경우 환경이 손상될 수 있기 때문입니다.
Conda 환경에서 conda와 pip의 차이점
두 명령어의 가장 큰 차이는 의존성을 검사하고 관리하는 범위에 있습니다.
| 구분 | conda install | pip install |
| 관리 범위 | 파이썬 패키지 + 비(非)파이썬 라이브러리 (MKL, CUDA 등) | 파이썬 패키지만 관리 |
| 의존성 해결 | 환경 전체의 모든 패키지를 스캔하여 호환성을 검사하고 설치 (매우 안정적) | pip로 설치된 파이썬 패키지 간의 의존성만 확인 (Conda가 설치한 라이브러리는 고려 안 함) |
| 패키지 소스 | Anaconda, conda-forge 등 Conda 채널 | PyPI (Python Package Index) |
| 환경 정보 | Conda 환경의 모든 정보를 알고 관리함 | Conda 환경의 정보를 알지 못함 |
쉽게 말해, conda는 환경 전체를 관리하는 관리자이고, pip는 파이썬 패키지에만 초점을 맞춘 설치 도구입니다. Conda 환경에서 pip를 사용하면, 관리자(conda) 모르게 패키지가 설치되거나 변경되어 충돌이 발생할 수 있습니다.
올바른 사용 순서 및 권장 사항
Conda 환경을 안정적으로 사용하기 위한 가장 중요한 원칙은 다음과 같습니다.
- 항상 conda를 먼저 사용하세요. 필요한 패키지가 있다면, 먼저 conda install <패키지명>으로 설치를 시도하세요. 기본 채널에 없다면 conda-forge 채널을 확인하는 것이 좋습니다.
-
# 1순위: conda 기본 채널에서 설치 conda install numpy # 2순위: conda-forge 채널에서 설치 conda install -c conda-forge some-package - conda에 패키지가 없을 때만 pip를 사용하세요. conda의 모든 채널을 찾아봐도 패키지가 없을 경우에만, 최후의 수단으로 pip를 사용합니다.
pip install some-pip-only-package - conda와 pip를 섞어서 패키지를 업데이트하지 마세요. 예를 들어 conda로 numpy를 설치한 뒤 pip install --upgrade numpy 명령으로 업그레이드하면, 환경의 의존성 정보가 꼬여 다른 패키지가 오작동할 수 있습니다.
'IT 관련 > 기타' 카테고리의 다른 글
| pyenv 파이썬 버전 관리 (0) | 2025.08.25 |
|---|---|
| 미니콘다(Miniconda) 설치 방법 (1) | 2025.07.11 |
| 미니 PC ??? (0) | 2025.06.26 |
| 블록깨기 게임. (0) | 2025.04.05 |
| 간단한 서버 운용을 위한 원보드 컴퓨터 비교 (0) | 2025.04.01 |