파이썬 가상환경: Conda와 Venv의 이해

수현·2024년 1월 2일
5

Venv

목록 보기
2/3
post-thumbnail

1. 파이썬 가상환경이란?

가상환경(Virtual Environment)은 파이썬에서 독립적인 프로젝트를 위한 개별적인 공간을 말합니다. 여러 프로젝트를 진행할 때 각 프로젝트의 '의존성(dependencies)'과 '라이브러리(libraries)'를 구분하여 관리할 수 있게 해줍니다. 이를 통해 한 시스템에서 서로 다른 버전의 파이썬 라이브러리를 사용할 수 있습니다.

가상환경 사용의 이점

  1. 프로젝트 분리: 다양한 프로젝트에서 서로 다른 라이브러리 버전을 사용할 수 있어, 한 프로젝트에서의 변경이 다른 프로젝트에 영향을 미치지 않습니다.
  2. 의존성 관리: 프로젝트별로 필요한 라이브러리와 버전을 명확히 관리할 수 있어, 코드의 호환성 및 재현성을 높일 수 있습니다.
  3. 개발 환경 일관성: 다른 개발자와 협업 시, 같은 환경에서 작업함으로써 발생할 수 있는 문제를 최소화합니다.

2. Conda 가상환경

Conda란 무엇인가?

Conda는 파이썬 및 기타 프로그래밍 언어를 위한 오픈소스 패키지 관리 시스템이자 환경 관리 시스템입니다. 데이터 과학과 기계 학습 프로젝트에 유용하며, 특히 복잡한 데이터 과학 라이브러리를 쉽게 설치하고 관리할 수 있습니다.

Conda 설치 방법

Conda는 Anaconda 또는 Miniconda를 통해 설치할 수 있습니다. Anaconda는 데이터 과학에 필요한 많은 라이브러리를 포함하고 있는 반면, Miniconda는 더 가볍고 필요한 패키지만 설치할 수 있습니다.

  • Anaconda 설치: Anaconda 공식 웹사이트에서 운영 체제에 맞는 설치 프로그램을 다운로드하여 설치합니다.
  • Miniconda 설치: Miniconda 웹사이트에서 운영 체제에 맞는 버전을 다운로드하여 설치합니다.

Conda로 가상환경 생성 및 활성화

가상환경을 만들고 사용하는 방법은 맥/리눅스와 윈도우에서 약간 다릅니다.

맥/리눅스:

# 가상환경 생성 (env_name은 가상환경 이름)
conda create --name env_name python=3.8

# 가상환경 활성화
conda activate env_name

윈도우:

# 가상환경 생성 (env_name은 가상환경 이름)
conda create --name env_name python=3.8

# 가상환경 활성화
activate env_name

주요 Conda 명령어 및 사용법

Conda 명령어는 맥과 윈도우 모두에서 대부분 동일하게 작동합니다.

- 가상환경 목록 보기

가상환경의 전체 목록을 확인하려면, 다음 명령어를 사용합니다.

conda env list

이 명령은 현재 설치된 모든 Conda 가상환경의 목록을 표시합니다.

- 특정 가상환경 제거

특정 가상환경을 제거하려면, 아래 명령어를 사용합니다.

conda env remove --name env_name

여기서 env_name은 제거하고자 하는 가상환경의 이름입니다.

- 패키지 설치

Conda를 사용하여 특정 패키지를 설치하려면 다음과 같은 명령어를 사용합니다.

conda install package_name

package_name은 설치하고자 하는 패키지의 이름입니다. 예를 들어, NumPy를 설치하려면 conda install numpy라고 입력합니다.

- 패키지 목록 보기

현재 가상환경에 설치된 패키지 목록을 확인하려면, 다음 명령어를 사용합니다.

conda list

이 명령은 현재 활성화된 가상환경에 설치된 모든 패키지와 그 버전을 표시합니다.

Conda 가상환경의 특징 및 장점

  • 플랫폼 독립성: 다양한 운영 체제에서 동일한 방식으로 사용할 수 있습니다.
  • 다양한 언어 지원: 파이썬 외에도 R, Ruby, Lua, Scala 등 다양한 언어의 패키지를 관리할 수 있습니다.
  • 대규모 데이터 과학 프로젝트 적합: 데이터 과학과 관련된 복잡한 패키지들을 쉽게 설치하고 관리할 수 있습니다.
  • 의존성 충돌 방지: Conda는 패키지 간의 의존성을 체크하여 충돌을 방지합니다.
  • 환경 복제: conda env export > environment.yml 명령을 통해 가상환경을 yml 파일로 내보내 다른 시스템에서 동일한 환경을 재생성할 수 있습니다.

Conda는 파이썬 가상환경 관리뿐만 아니라 복잡한 데이터 과학 프로젝트를 위한 강력한 도구입니다. 이를 통해 프로젝트의 효율성과 재현성을 높일 수 있습니다.

3. Venv 가상환경

Venv란 무엇인가?

Venv (Virtual Environment)는 파이썬을 위한 가상 환경 생성 도구입니다. 파이썬 3.3 버전부터 표준 라이브러리에 포함되었으며, 개별 프로젝트에 독립된 파이썬 환경을 제공합니다. 이를 통해 서로 다른 프로젝트에서 다른 버전의 라이브러리를 사용할 수 있으며, 시스템의 파이썬 환경에 영향을 주지 않습니다.

Venv 설치 및 설정 방법

Venv는 파이썬 3.3 이상 버전에 기본적으로 포함되어 있으므로 별도의 설치 과정이 필요하지 않습니다. 다음은 Venv를 사용하여 가상환경을 생성하고 활성화하는 방법입니다.

가상환경 생성 및 활성화:

# 가상환경 생성 (env_name은 가상환경 이름)
python3 -m venv env_name

# 가상환경 활성화 (맥/리눅스)
source env_name/bin/activate

# 가상환경 활성화 (윈도우)
env_name\Scripts\activate

활성화된 가상환경에서는 해당 환경에만 영향을 주는 라이브러리 설치, 업데이트, 제거 등의 작업을 수행할 수 있습니다.

주요 Venv 명령어 및 사용법

다음은 Venv를 사용할 때 자주 쓰이는 명령어들과 그 사용법입니다.

- 가상환경 비활성화

활성화된 가상환경을 비활성화하려면, 다음과 같은 명령어를 사용합니다.

deactivate

이 명령은 현재 활성화된 가상환경을 비활성화합니다.

- 패키지 설치

가상환경 내에서 특정 패키지를 설치하려면, 아래 명령어를 사용합니다.

pip install package_name

여기서 package_name은 설치하려는 패키지의 이름입니다. 예를 들어, requests 패키지를 설치하려면 pip install requests라고 입력합니다.

- 설치된 패키지 목록 확인

현재 가상환경에 설치된 패키지 목록을 확인하려면, 다음 명령어를 사용합니다.

pip list

이 명령은 현재 활성화된 가상환경에 설치된 모든 패키지와 그 버전을 표시합니다.

Venv 가상환경의 특징 및 장점

  • 경량성과 편리성: 파이썬의 기본 모듈로 제공되므로 추가 설치가 필요 없으며, 사용이 간단합니다.
  • 프로젝트별 독립성: 각 프로젝트에 필요한 패키지와 의존성을 독립적으로 관리할 수 있습니다.
  • 시스템 파이썬 환경 보호: 시스템의 기본 파이썬 환경에 영향을 주지 않고, 프로젝트별로 다른 버전의 라이브러리를 사용할 수 있습니다.
  • 패키지 버전 관리: pip freeze > requirements.txt 명령으로 현재 환경의 패키지 목록을 저장하고, 다른 환경에서 pip install -r requirements.txt 명령으로 동일한 환경을 구축할 수 있습니다.

Venv를 사용하면 파이썬 프로젝트의 의존성 관리가 간편해지며, 다양한 환경에서의 프로젝트 호환성을 보장할 수 있습니다. 이는 특히 개인 프로젝트나 소규모 팀 프로젝트에 매우 적합합니다.

4. Conda와 Venv 비교

파이썬 프로젝트에서 Conda와 Venv는 두 가장 인기 있는 가상환경 관리 도구입니다. 각각의 특징을 이해하고, 프로젝트의 요구사항에 맞게 선택하는 것이 중요합니다.

기능적 차이점

  1. 설치 및 관리:

    • Conda: 데이터 과학 및 머신러닝 프로젝트에 최적화된 다양한 패키지와 함께 제공됩니다. 복잡한 의존성 관리와 다양한 패키지 설치를 쉽게 처리할 수 있습니다.
    • Venv: 파이썬 3.3 이상 버전에 포함된 경량화된 도구로, 필요한 기본적인 가상환경 기능을 제공합니다.
  2. 환경 구성:

    • Conda: 파이썬과 다양한 프로그래밍 언어를 지원하며, 특히 Anaconda 배포판에 포함된 많은 과학 계산 관련 패키지들과의 호환성이 뛰어납니다.
    • Venv: 오직 파이썬 환경에 초점을 맞추고 있어, 순수 파이썬 프로젝트에 적합합니다.

추천

  • Conda:

    • 복잡한 데이터 과학 프로젝트나 다양한 언어를 사용하는 프로젝트에 추천됩니다.
    • Conda를 통해 라이브러리 간의 복잡한 의존성을 관리하고, 특히 과학 계산이나 데이터 분석에 필요한 패키지를 쉽게 설치할 수 있습니다.
  • Venv:

    • 기본적인 파이썬 개발 환경이 필요한 경우에 적합합니다.
    • 가벼운 프로젝트나 파이썬 학습, 작은 규모의 웹 애플리케이션 개발에 주로 사용됩니다.

결론

  • Conda: 데이터 과학, 머신러닝, 복잡한 의존성을 가진 프로젝트에 적합
  • Venv: 일반적인 파이썬 개발에 적합, 가볍고 간단한 프로젝트에 추천
profile
데이터 분석 공부중:)

1개의 댓글

comment-user-thumbnail
2024년 9월 30일

뤼얼 감사드립니다. 헷갈렷거든요..

답글 달기