본문 바로가기
C.W.K.
Stream
Lesson 05 of 05 · published

conda를 오래 안정적으로 쓰는 법

~10 min · conda, wisdom, production

Level 0입문자
0 XP0/55 lessons0/16 achievements
0/80 XP to next level80 XP to go0% complete

conda가 이 퀘스트에서 특히 자주 오해받는 이유는 웹 개발이 아닌 데이터 과학과 연구 환경에서 성장했기 때문이야. 아래 원칙을 알면 그 문화적 차이를 넘어 제대로 쓸 수 있어.

Anaconda 대신 Miniconda나 Miniforge를 써. 전체 Anaconda 배포판에는 대부분의 사용자가 건드리지 않을 과학 패키지가 약 3GB나 미리 설치돼. conda만 설치하고 필요한 패키지를 그때그때 추가하면 돼.

conda-forge를 기본 channel로 둬. 패키지가 더 많고 버전이 새로우며 별도의 상업용 라이선스 조건도 없어.

프로젝트마다 환경 하나를 써. venv와 같은 원칙으로 base 환경에는 프로젝트 패키지를 설치하지 마. 프로젝트마다 conda activate로 환경을 바꾸고 environment.yml을 저장소에 포함해.

공유할 환경은 --from-history로 내보내. 기본 export는 다른 플랫폼에 없을 수 있는 정확한 빌드 해시까지 고정해. --from-history는 직접 요청한 패키지만 기록하고 대상 컴퓨터에서 conda가 다시 알맞게 해석하도록 해.

새 Python 프로젝트라면 pixi를 검토해. 다음 트랙의 pixi는 conda-forge와 호환되면서 약 10배 빠르고 자체 lockfile도 제공해. conda의 범위가 필요하지만 더 나은 개발 경험을 원할 때 좋은 선택이야.

느린 base 환경과 싸우지 마. base에서 conda updateconda install이 느리다면 패키지가 누적된 결과일 가능성이 커. 프로젝트별 환경을 만들고 base는 conda 자체만 담아 가볍게 유지해.

Code

자동 활성화를 위한 direnv hook·bash
# direnv install
brew install direnv
echo 'eval "$(direnv hook zsh)"' >> ~/.zprofile

# 프로젝트 .envrc 에
echo 'eval "$(conda shell.bash hook)"' > .envrc
echo 'conda activate myenv' >> .envrc
direnv allow

# 프로젝트로 cd, env 자동 활성화.
# 이게 Pippa 가 cwk-pippa env 에 사용하는 거.

External links

Exercise

'conda env list'로 현재 환경을 나열하고 각 환경을 쓰는 프로젝트와 마지막 사용 시점을 적어. 6개월 넘게 쓰지 않은 환경은 'conda remove --name X --all'로 제거해. 디스크 공간을 되찾고 관리할 대상도 줄일 수 있어.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.