Python 개발 환경을 conda로 관리하고 있다면, 먼저 아래 글을 한 번 읽어보는 걸 추천합니다.
아래 글은 이 내용을 간단히 되짚고, 실제로 쓰는 conda 환경 생성·삭제·복제·이전 방법 위주로 정리한 실전 가이드입니다.
1. Anaconda vs Miniconda 한 줄 요약
요약하면 이렇게 볼 수 있습니다.
-
Anaconda:
→ 데이터 과학/머신러닝에 자주 쓰는 패키지를 한꺼번에 깔아주는 종합선물세트 배포판 -
Miniconda:
→ conda 환경/패키지 관리 기능만 제공하고,
필요한 패키지는 개발자가 직접 골라서 설치하는 미니멀 배포판
저는 “가볍게 시작하고, 필요한 순간에만 패키지를 추가하는 스타일” 을 선호하기 때문에,
웬만하면 Miniconda를 설치해서 그 위에 환경을 쌓아 올리는 방식을 추천합니다.
-
디스크를 덜 쓰고
-
업데이트가 덜 번거롭고
-
프로젝트별로 딱 필요한 것만 설치해서 환경이 덜 지저분해지는 장점이 있습니다.
2. conda 환경 개념 빠르게 짚고 가기
conda의 “환경(environment)”은 쉽게 말해 프로젝트 별로 분리된 Python/패키지 세트입니다.
-
env A: Python 3.10 + Django 4 + 특정 라이브러리 버전 -
env B: Python 3.11 + FastAPI + 전혀 다른 라이브러리 셋
이렇게 서로 다른 버전이 서로 간섭하지 않도록 격리하는 것이 핵심입니다.
환경 관련해서 자주 쓰는 기본 명령은 다음과 같습니다.
# 현재 설치된 conda 환경 목록 보기
conda env list
# 또는
conda info --envs
3. conda 환경 생성하기
3.1 가장 기본적인 환경 생성
conda create -n myenv python=3.12
-
-n myenv: 환경 이름을myenv로 지정 -
python=3.12: Python 3.12 버전 사용
환경이 만들어진 뒤에는:
conda activate myenv # 환경 활성화
conda deactivate # 환경 비활성화
3.2 생성하면서 자주 쓰는 패키지 같이 설치
conda create -n myenv python=3.12 numpy pandas matplotlib
이미 설치된 Miniconda의 기본 채널에서 위 패키지들을 함께 설치한 새 환경이 만들어집니다.
이후에는:
conda activate myenv
conda install scikit-learn
# 혹은
pip install requests
처럼 필요할 때마다 패키지를 추가해 나가면 됩니다.
4. conda 환경 삭제하기
더 이상 쓰지 않는 환경은 과감히 지우는 것이 좋습니다.
(conda환경은 꽤 디스크 공간을 잡아먹는 편입니다. )
# myenv 환경 삭제
conda env remove -n myenv
삭제 후 확인:
conda env list
myenv가 목록에서 사라졌다면 정상입니다.
5. conda 환경 복제하기 (clone)
실험용으로 이것저것 깔아본 환경을
“비슷한 설정이지만 이름만 다른 환경”으로 하나 더 만들고 싶을 때 유용합니다.
# existing-env 를 기준으로 new-env 라는 복제 환경 생성
conda create -n new-env --clone existing-env
-
패키지 버전까지 그대로 가져오기 때문에,
-
“기존 환경은 그대로 두고, 새로운 실험을 하고 싶을 때” 많이 쓰는 패턴입니다.
복제 후:
conda activate new-env
해서 잘 동작하는지 확인해보면 됩니다.
6. conda 환경 이전하기 (export / import)
다른 PC나 서버로 환경을 옮기고 싶을 때는
환경을 파일로 내보낸 뒤(import/export) 그 파일을 기반으로 새 환경을 만드는 방식이 가장 일반적입니다.
6.1 환경 내보내기(export) – YAML 파일 생성
# myenv 환경을 env.yml 파일로 내보내기
conda env export -n myenv > env.yml
이 env.yml 파일 안에는:
-
환경 이름
-
사용 중인 채널 정보
-
설치된 패키지와 버전
이 기록되어 있습니다.
히스토리 기반 최소 목록만 내보내고 싶다면
이미 의존성까지 포함된 풀 리스트 대신,
“내가 직접 설치한 패키지만” 기록하고 싶을 때는:
conda env export -n myenv --from-history > env-min.yml
이렇게 만들어 두면, 다른 환경에서 create 했을 때
필요한 의존성은 다시 conda가 알아서 풀어줍니다.
6.2 다른 곳(또는 같은 머신)에서 환경 생성하기
다른 PC, 서버, 혹은 같은 머신의 새로운 위치에서:
conda env create -f env.yml
이렇게 하면 env.yml에 정의된 이름과 패키지 버전으로 환경이 생성됩니다.
-
env.yml안에name: myenv라고 적혀 있다면, 그 이름으로 만들어짐 -
이름을 바꾸고 싶으면
env.yml파일의name:부분을 직접 수정한 후 실행
예를 들어, env.yml의 name: myenv를 name: myenv-dev로 바꾼 다음:
conda env create -f env.yml
conda activate myenv-dev
하면, 같은 구성을 이름만 다르게 가져올 수 있습니다.
7. 자주 쓰는 conda 패턴 정리
Miniconda를 기반으로 환경을 꾸릴 때 자주쓰는 유용한 패턴들을 정리해 보겠습니다.
-
프로젝트마다 환경 하나씩
-
proj-a-env,proj-b-env처럼 프로젝트 이름을 따서 환경 이름을 짓기 -
서로 충돌 없이 버전 관리가 편해집니다.
-
-
환경은 최소 설치 후 필요할 때만 확대
-
처음엔
python+ 몇 개 기본 패키지만 설치 -
개발하며 필요한 순간에
conda install또는pip install로 확장
→ 이게 Miniconda의 미니멀 철학과 잘 맞습니다.
-
-
중요한 환경은 주기적으로 export
-
릴리스 시점, 배포 전에:
bash conda env export -n proj-a-env --from-history > proj-a-env.yml -
이 파일을 저장소에 커밋해두면,
같은 환경을 팀원이 쉽게 재현할 수 있습니다.
-
-
대규모 변경 전에는 clone으로 백업
-
대규모 패키지 업그레이드, Python 버전 변경 전에:
bash conda create -n proj-a-backup --clone proj-a-env -
문제가 터지면 백업 환경으로 빠르게 되돌아갈 수 있습니다.
-

마무리: 가볍게 시작해서, 필요할 때 확장하기
정리해보면 선택지는 단순합니다.
-
Anaconda는 “필요할 수도 있는 패키지”를 한 번에 깔아놓고 시작하는 방식
-
Miniconda는 “진짜 필요한 것만 그때그때 설치”하면서 가볍게 가져가는 방식
요즘처럼 프로젝트마다 요구하는 Python 버전, 패키지 조합이 제각각인 상황에서는
Miniconda + 잘 관리된 conda 환경 조합이 훨씬 유연합니다.
환경을:
-
만들고(
conda create) -
켜고(
conda activate) -
지우고(
conda env remove) -
복제하고(
conda create --clone) -
다른 곳으로 옮기는 것(
conda env export/conda env create)
이 정도만 익혀두면, 새 프로젝트를 시작할 때마다
“이번엔 뭘 지우고 뭘 다시 설치해야 하지?” 같은 고민에서 꽤 자유로워집니다.
앞으로 새 프로젝트를 시작할 때는:
-
Miniconda 기준으로 새 환경을 하나 만들고
-
그 안에 정말 필요한 패키지만 설치해 보세요.
-
환경 구성이 마음에 들면
env.yml로 내보내 두고,
다음 프로젝트에서는 그걸 살짝 수정해서 재사용하면 됩니다.
이 패턴이 몸에 한 번 익고 나면, conda 환경 관리는 더 이상 귀찮은 일이 아니라 “프로젝트를 깨끗하게 유지해주는 든든한 습관”이 될 것이라고 생각합니다.
댓글이 없습니다.