conda vs virtualenv 라이브러리 관리 비교

Page content

개요

  • 파이썬에는 가상환경이 다양하게 존재한다.
  • 이 중, conda와 virtualenv 가상환경에서 라이브러리 관리를 어떻게 하는지 비교를 해보도록 한다.

프로젝트 폴더 생성

  • 폴더명은 virtualTest로 명명했다.

Conda

  • 먼저 가상환경을 만들어본다.
conda create -n virtualTest python=3.10

Untitled

  • conda 가상환경에 접속하는 방법은 다음과 같다.
conda activate virtualTest

Untitled

environment.yml

  • 라이브러리 관리를 위해 아래와 같이 샘플 코드를 생성한다.
name: virtualTest
channels:
  - defaults
dependencies:
  - python=3.10
  - numpy
  - pandas
  - pip:
    - streamlit
  • 실행 코드는 아래와 같다.
conda env create -f environment.yml
  • 라이브러리 추가 설치를 한다.
conda install matplotlib
  • 추가된 라이브러리를 추출한다.
conda env export > env_file.yml
  • 파일을 확인하면 아래와 같이 복잡하게 나타난다.

Untitled

  • 따라서, 기존 파일에 주요 라이브러리를 추가하고 업데이트를 해준다.
conda env update --file environment.yml --prune

virtualenv

  • 처음에만 virtualenv 라이브러리를 설치한다. (그 다음부터는 실행 안해도 된다.)
pip install virtualenv
  • 가상환경을 생성한다.
virtualenv venv
  • 가상환경에 접속한다.
source venv/Scripts/activate
  • virtualenv에서는 requirements.txt 파일을 기억한다.
numpy
pandas
seaborn
  • 라이브러리를 설치한다.
pip install -r requirements.txt
  • 다른 라이브러리를 설치한다.
pip install scipy
  • 그 이후에 다음 명령어를 통해 기존에 설치한 라이브러리를 확인한다.
pip freeze > req.txt
  • 마찬가지로 requirements.txt에서 직접 관리하는 것이 더 좋다.

Untitled