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

pixi를 장기적으로 운영하는 법

~9 min · pixi, wisdom, production

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

pixi는 이 퀘스트에서 가장 젊은 도구야. 아래 원칙을 지키면 새 도구를 믿을 만한 장기 선택으로 도입할 수 있어.

conda-forge가 필요한 프로젝트에 pixi를 써. 컴파일된 의존성이 없는 순수 Python 프로젝트라면 일반 uv가 더 단순해. PyTorch와 CUDA, GDAL, ffmpeg, R 패키지처럼 conda-forge가 해결하고 PyPI만으로는 다루기 어려운 무거운 binary가 필요할 때 pixi가 빛나.

pixi.lock은 항상 버전 관리에 넣어. 다른 lockfile과 같은 철칙이야. pixi.lock은 텍스트 기반이고 비교적 안정적이며 재현성을 제공해.

한 번 실행할 명령에는 pixi shell 대신 pixi run을 써. 환경을 활성화하는 절차를 줄이고 Makefile이나 CI 스크립트에 그대로 넣기 좋은 형태야.

Makefile 대신 내장 task runner를 활용해. pixi.toml의 task는 depends_on, 환경 선택, 여러 플랫폼의 인자를 지원해. 기본 Make target보다 표현력이 높고 의존성 선언 옆에서 함께 관리돼.

프로젝트 변화 속도를 지켜봐. pixi는 1~2주마다 새 버전이 나오고 호환성을 깨는 변화도 생겨. 팀 전체의 안정성이 필요하면 pixi.toml의 [pixi]에서 버전을 고정해.

conda에서 단계적으로 옮겨. 'pixi init --import environment.yml'은 첫날부터 작동하는 pixi.toml을 만들어 줘. 이후 프로젝트가 필요로 하는 만큼 tasks, features, environments를 차례로 추가하면 돼.

Code

GitHub Actions에서 pixi 설치·yaml
# .github/workflows/ci.yml
name: ci
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v5
      - uses: prefix-dev/setup-pixi@v0.8.1
        with:
          cache: true
      - run: pixi install --locked        # strict, lockfile drift 에 fail
      - run: pixi run test
      - run: pixi run lint

External links

Exercise

느린 설치, 깨진 환경, 어려운 공유 때문에 고생하는 conda 프로젝트 하나를 골라. 새 브랜치에서 'pixi init --import environment.yml'로 이전을 시험하고 차이를 측정해. 해당 의존성 구성이 제대로 작동한다면 앞으로 1년간 쓸 데이터 과학 기본 도구를 찾은 셈이야.

Progress

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

댓글 0

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

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