C.W.K.
Stream
Lesson 01 of 07 · published

MLX 설치 — 스스로 미워지지 않게

~10 min · installation, conda, rosetta

Level 0Curious
0 XP0/51 lessons0/15 achievements
0/100 XP to next level100 XP to go0% complete

두 줄 install (그리고 왜 가끔 옆길로 새는지)

Native ARM Python env 에서 pip install mlx mlx-lm. 그게 의도된 워크플로 전부야. 대부분의 실패는 사실 MLX 실패가 아냐 — MLX 를 import 하는 순간 드러나는 Python 환경 실패야.

이 레슨은 일부러 짧아. 핵심은 깨끗하고 재현 가능한 install 을 전용 env 에 받고, verify 체크 돌리고, 어느 요일이든 작동하는 setup 으로 돌아올 수 있다는 걸 알고 떠나는 거.

전용 conda env 써 (권장)

나는 MLX 를 자기 conda env (창의적으로 mlx 라고 이름) 에 두고 다른 ML 스택과 절대 env 공유 안 시켜. 이유는 종교적인 게 아냐 — MLX 는 의존성이 가볍고 거의 충돌 안 해 — 재현성이야. 3 개월 후 돌아왔는데 breaking-change 기차가 지나갔으면, 단일 목적 env 가 있다는 건 한 가지 만 업그레이드한다는 뜻이야.

Rosetta 함정, 자세히

python 이 Rosetta x86 emulation 아래 돌고 있으면, MLX 의 pip install 이 조용히 성공하고 첫 import mlx.core 에서 SIGSEGV 할 수 있어. 이유 — pip 가 잘못된 아키텍처용 의존성 wheel 을 resolve 하고 linker 가 import 시간에야 알아차려. Fix 는 자체 platform.machine() 에서 arm64 를 보고하는 Python 을 쓰는 거.

macOS 에서 그걸 보장하는 가장 깨끗한 방법은 miniforge (또는 현대 miniconda, 이제 기본으로 native ARM 출하). 둘 다 모든 Python 인터프리터가 진짜 ARM 인 환경 만들어. 피해야 할 한 함정 — Apple Silicon 에서 legacy x86_64 installer 로 miniconda 설치하지 마. Env 가 멀쩡해 보이고 조용히 Rosetta 써.

검증, 그리고 넘어가

세 체크. 다 통과하면 이 레슨 끝:

  1. uname -marm64 출력
  2. python -c "import platform; print(platform.machine())"arm64 출력 (Rosetta 가 거짓말하는 그것)
  3. import mlx.core as mx; print(mx.__version__) 가 성공하고 버전 출력

특히 step 2 에서 실패하면 네 Python 은 Rosetta 아래 — 다른 어떤 거보다 먼저 그거 고쳐. "그냥 import 해서 보지" 가 아무리 유혹적이어도.

Code

전용 env 만들기 (일회성)·bash
# If you already have miniforge or modern miniconda installed:
conda create -n mlx python=3.11 -y
conda activate mlx
pip install --upgrade pip
pip install mlx mlx-lm

# Always upgrade before serious work — MLX moves fast:
pip install -U mlx mlx-lm
세 체크 verify (env 안에서 돌려)·bash
# 1. Shell-level architecture
uname -m
# Must print: arm64

# 2. Python-level architecture (this is the load-bearing one)
python -c "import platform; print('arch:', platform.machine())"
# Must print: arch: arm64
# If it prints x86_64, your Python is under Rosetta — DO NOT proceed.

# 3. MLX import + version
python -c "import mlx.core as mx; print('mlx:', mx.__version__)"
python -c "import mlx_lm;        print('mlx-lm:', mlx_lm.__version__)"

# Verified output (2026-05-03):
#   arm64
#   arch: arm64
#   mlx: 0.31.2
#   mlx-lm: 0.31.3

External links

Exercise

전용 mlx conda env 를 처음부터 만들어 (또는 이미 있으면 conda env remove -n mlx 하고 다시 만들어 — 이게 네 재현성 테스트야). 세 체크 verify 돌려. 그 다음 mlx-check (또는 네 등가물) 를 shell config 에 추가하고 shell 다시 source 해서 함수 사용 가능하게. 전체에 얼마나 걸리는지 시간 재 — 5 분 안이 바. 핵심은 이 setup 이 다시 하기 싸다고 느끼는 거지, 보존할 귀한 거 아니라는 것.

Progress

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

댓글 0

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

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