C.W.K.
Stream
Lesson 04 of 05 · published

Channels, Binary, Solver, pip 와 섞기

~12 min · conda, concepts, internals

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

네 conda 개념이 진짜 사용에서 반복 중요.

Channels. Channel 이 패키지 저장소. defaults channel (Anaconda Inc) 이 원조; conda-forge 보다 패키지 적고 상업 라이선싱 더 strict. conda-forge 가 30,000+ 패키지와 가장 active maintainer 가진 커뮤니티 channel. bioconda 가 bioinformatics 도구용. pytorch, nvidia 등 이 특정 stack 용 vendor channel. 안 할 이유 없으면 대부분 install 에 -c conda-forge 사용.

Binary 패키지. conda 의 killer 기능. conda 패키지가 컴파일된 C/C++ 라이브러리, CUDA 런타임, R 패키지, Java 도 포함 가능. pytorch install 하면 conda 가 너 OS, CPU 아키텍처, CUDA 버전에 매치된 사전 컴파일 binary fetch — 컴파일 없음. ML / 데이터 사이언스의 디폴트 만든 거.

Solver. conda 가 옛날엔 악명 높게 느린 Python 기반 SAT solver 사용 (복잡 env 에 분 단위). 새 libmamba solver (conda 23.10 부터 디폴트) 가 극적으로 빠름 — 보통 env 에 5-10배. 옛 conda 면 conda install -n base conda-libmamba-solverconda config --set solver libmamba 로 활성화.

conda + pip 섞기. 일부 패키지가 PyPI-only (어떤 conda channel 에도 없음). 옳은 패턴: conda 패키지 다 먼저 install, THEN pip 으로 나머지 install. 역순이 env 손상 가능. environment.yml 의 pip: 섹션 아래 pip layer 문서화해서 재현 가능하게.

Code

conda + pip 섞기 깨끗하게·yaml
# environment.yml — conda 먼저, pip 두 번째
name: my-env
channels:
  - conda-forge
  - pytorch
dependencies:
  # Conda layer — 먼저 install
  - python=3.12
  - pytorch
  - pandas
  - jupyterlab
  # Pip layer — 후에 install
  - pip
  - pip:
    - some-pypi-only-package
    - another-pypi-only-package

# 'conda env create -f environment.yml' 이 conda 먼저, pip 두 번째 install.
# 역순이 가끔 env 손상.
libmamba solver 켜졌는지 검증·bash
# 현재 solver 체크
conda config --show solver
# solver: libmamba    ← 원하는 거

# 'classic' 이면 업그레이드:
conda install -n base conda-libmamba-solver
conda config --set solver libmamba

External links

Exercise

'conda config --show solver' 돌려. 'classic' 이면 libmamba 활성화 (위 snippet). 그 다음 무거운 패키지 리스트로 fresh env 생성 ('conda create -n speed-test python=3.12 numpy pandas matplotlib jupyterlab pytest scipy') 하고 측정. solver speed-up 이 env 얼마나 자주 만드는지 바꿀 만큼 충분.

Progress

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

댓글 0

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

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