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

conda의 범위를 더 편하게 쓰는 pixi

~11 min · pixi, overview, python, rust

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

pixi는 prefix.dev가 conda-forge 위에 Rust로 만든 차세대 패키지 관리자야. conda와 같은 저장소를 사용해 모든 conda-forge 패키지를 쓸 수 있으면서, Rust의 Cargo, JavaScript의 npm, Python의 Poetry에서 영감을 받은 작업 흐름을 제공해. 결과는 conda의 강력한 binary 패키지와 현대적인 개발 경험의 결합이야.

conda와 비교하면 개선점이 구체적이야.

  • Rust와 병렬 의존성 해석 덕분에 일반적인 설치가 conda보다 약 10배 빨라.
  • 별도 conda-lock 없이도 자체 lockfile인 pixi.lock으로 재현성을 제공해.
  • 환경을 중앙 ~/conda/envs/가 아니라 프로젝트 안의 .pixi/에 두어 conda activate가 필요 없어.
  • pixi.toml에 작업을 정의하고 pixi run <task>로 실행하는 task runner가 내장되어 Makefile이나 프로젝트별 셸 래퍼를 대신해.
  • PyPI 의존성은 내부적으로 uv가 해석해. pixi가 binary 구성을 맡고 uv가 순수 Python 의존성을 맡는 보완 관계야.

pixi는 PyTorch와 CUDA, GDAL, ffmpeg, R 연동 같은 conda-forge binary가 필요한 데이터 과학 프로젝트, 재현성이 중요한 머신 러닝 프로젝트, 여러 언어가 섞인 과학 컴퓨팅에 특히 잘 맞아. 의존성이 모두 순수 Python이라면 일반 uv가 더 단순할 때가 많아.

Code

pixi와 conda 비교·text
                       conda                  pixi
  속도                 느림 (libmamba 도움)   10배 빠름 (Rust)
  Lock 파일            없음 (conda-lock 사용) pixi.lock (빌트인)
  Env 위치             ~/conda/envs/<name>    프로젝트 안 .pixi/
  Activation           conda activate <name>  자동 (activate 안 필요)
  Task runner          External (Make 등)     빌트인 (pixi.toml [tasks])
  PyPI                 pip 와 조심 섞기       uv 통해 native
  Channels             conda-forge, defaults  conda-forge 디폴트
  적합한 데            Legacy / 친숙          새 데이터-사이언스 프로젝트

External links

Exercise

https://pixi.sh에서 문서를 훑고 pixi add, pixi run, pixi.toml 같은 명령과 파일이 Cargo와 얼마나 닮았는지 살펴봐. Rust의 Cargo나 npm의 package.json을 써 봤다면 기존 이해를 곧바로 옮길 수 있도록 의도된 설계야.

Progress

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

댓글 0

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

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