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

pixi.toml, pixi.lock, Features, PyPI Layer

~11 min · pixi, concepts, internals

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

네 pixi 개념이 모델 대부분 커버.

pixi.toml. 프로젝트 manifest. 프로젝트 이름, channels, 패키지 deps (conda-forge), pypi-deps (PyPI), tasks, features, environments 선언. pixi 의 package.json / Cargo.toml — 프로젝트가 필요한 거의 source of truth.

pixi.lock. 자동 생성된 lock 파일. 모든 직접 + transitive dep 를 콘텐츠 hash 와 함께 핀, 타겟한 모든 플랫폼에 대해. 재현성 bit-exact — 다른 머신의 pixi install 이 같은 env 생성. 항상 pixi.lock commit; 절대 손 편집 안 함.

Features 와 environments. pixi.toml 이 features (deps 의 이름 그룹) 와 environments (features 의 조합) 선언 지원. 디폴트 사용은 간단 — base deps + dev feature. 그치만 복잡 프로젝트엔 cuda, amd, cpu features 가지고 한 pixi.toml 에서 gpu-cuda, gpu-amd, cpu-only environments 생성 가능. ML 프로젝트의 monorepo-스타일 재현성.

PyPI layer (uv 통해). pixi.toml 이 pypi-deps 선언하면 pixi 가 uv 에 shell out 해서 resolve. 그래서 pixi 가 conda-forge / PyPI split 깨끗하게 처리 — conda-forge 가 binary, uv 가 순수 Python. 두 layer 가 pixi.lock 에 별도 추적되지만 사용자 경험 통합.

Code

진짜 pixi.toml·toml
[project]
name = "my-ml-project"
version = "0.1.0"
channels = ["conda-forge", "pytorch"]
platforms = ["osx-arm64", "linux-64"]

[dependencies]
python = "3.12.*"
numpy = "*"
pandas = "*"
pytorch = "*"

[pypi-dependencies]
fastapi = "*"
pydantic = ">=2.0"

[tasks]
train = "python train.py"
serve = "uvicorn server:app --reload"

[feature.dev.dependencies]
pytest = "*"
ruff = "*"

[environments]
default = { features = [], solve-group = "default" }
dev = { features = ["dev"], solve-group = "default" }
conda environment.yml 에서 마이그레이션·bash
# pixi 가 conda environment.yml 파일 import 가능
conda env export --from-history > environment.yml
pixi init --import environment.yml

# 같은 패키지의 pixi.toml 생성.
# 'pixi install' 로 resolve + install.

External links

Exercise

conda environment.yml 가지고 있으면 fresh dir 에서 'pixi init --import environment.yml' 돌리고 결과 pixi.toml 읽어. 번역이 대부분 깨끗하고 pixi 가 추가하는 거 (tasks, features, lock) 즉시 보여.

Progress

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

댓글 0

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

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