From e74805f2fd174d614e8fe3bfb04bf63915429f47 Mon Sep 17 00:00:00 2001 From: dosangyoon Date: Mon, 23 Mar 2026 16:26:46 +0900 Subject: [PATCH] fix(deps): pin full pyannote 3.x stack; doc uninstall audio 4.x - Cap core/database/pipeline; use pyannote-audio==3.3.2 dist name - README: resolve conflict with metrics 3 + numpy<2.2 Made-with: Cursor --- README.md | 12 +++++++++++- requirements-diarize.txt | 13 +++++++++++-- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 89a616b..4573733 100644 --- a/README.md +++ b/README.md @@ -205,7 +205,17 @@ conda install -n ncue "numpy<2.2" -c conda-forge 이 저장소 `requirements.txt`에는 위와 같이 **`numpy<2.2`** 를 명시해 두었습니다. 이미 깨진 환경은 위처럼 한 번 재설치하면 됩니다. **`pyannote-metrics 4.x` 와 NumPy 버전 경고** -`pyannote-metrics` 4.0.0 이상은 **`numpy>=2.2.2`** 를 요구해, 위 `numpy<2.2` 정책과 맞지 않습니다. `requirements-diarize.txt` 에서 **`pyannote-metrics>=3.2,<4`** 로 상한을 두어 3.x만 쓰도록 했습니다. 이미 4.x가 깔린 환경은 `git pull` 후 `pip install -r requirements-diarize.txt` 를 다시 실행하거나 `pip install "pyannote-metrics>=3.2,<4" --force-reinstall` 하세요. (CPU가 **X86_V2를 지원**하고 NumPy 2.2+ 휠을 쓸 수 있다면, 팀 정책에 따라 `numpy` 상한을 올리고 metrics 4.x를 쓰는 선택도 가능합니다.) +`pyannote-metrics` 4.0.0 이상은 **`numpy>=2.2.2`** 를 요구해, 위 `numpy<2.2` 정책과 맞지 않습니다. `requirements-diarize.txt` 에서 **`pyannote-metrics>=3.2,<4`** 로 상한을 두고, **`pyannote-core` / `pyannote-database` / `pyannote-pipeline` 도 6대 미만 등 3.x 스택**에 맞게 캡해 두었습니다. (CPU가 **X86_V2를 지원**하고 NumPy 2.2+ 휠을 쓸 수 있다면, 팀 정책에 따라 `numpy` 상한을 올리고 metrics 4.x + `pyannote-audio` 4.x를 쓰는 선택도 가능합니다.) + +**`pyannote-audio 4.x` 와 `pyannote-metrics 3.x` 충돌** +`pyannote-audio` 4.x 는 **`pyannote-metrics>=4`** 를 요구합니다. metrics 를 3.x로 두려면 **audio 도 3.3.2** 여야 합니다. 경고가 나오면: + +```bash +pip uninstall -y pyannote-audio pyannote.audio +pip install -r requirements-diarize.txt +``` + +구형 CPU용으로 **`numpy<2.2`** 를 쓰는 경우, 위 설치 후 NumPy가 올라갔다면 `pip install "numpy>=1.26,<2.2" --force-reinstall` 로 다시 맞춥니다. **같은 서버에서 빠른 점검** diff --git a/requirements-diarize.txt b/requirements-diarize.txt index 0c3578e..61ea060 100644 --- a/requirements-diarize.txt +++ b/requirements-diarize.txt @@ -4,6 +4,10 @@ # pip install -r requirements.txt # pip install -r requirements-diarize.txt # +# 이미 pyannote-audio 4.x 가 깔려 있으면 metrics 3.x 와 절대 맞지 않습니다. 그때는 먼저: +# pip uninstall -y pyannote-audio pyannote.audio +# pip install -r requirements-diarize.txt +# # `pyannote.audio>=3.1.0` 만 단독으로 두면 최신 메이저가 끌려와 torch/lightning/opentelemetry # 등으로 pip 해석 깊이가 커져 Linux에서 resolution-too-deep 이 날 수 있습니다. # 여기서는 pyannote 3.3.x + torch를 고정합니다 (PyPI 메타: torch>=2.0.0). @@ -14,6 +18,11 @@ torch==2.5.1 torchaudio==2.5.1 lightning==2.4.0 huggingface_hub>=0.26.0,<0.36.0 -# pyannote-metrics 4.x 는 numpy>=2.2.2 를 요구합니다. 베이스 requirements.txt 의 numpy<2.2(구형 CPU·X86_V2 회피)와 맞추려면 3.x 로 캡합니다. +# pyannote 3.x 한 묶음 (audio 4.x 는 metrics>=4·numpy>=2.2.2 쪽으로 가므로 여기서는 전부 3대 유지) +pyannote-core>=5.0.0,<6.0.0 +pyannote-database>=5.0.1,<6.0.0 +pyannote-pipeline>=3.0.1,<4.0.0 +# metrics 4.x 는 numpy>=2.2.2 → requirements.txt 의 numpy<2.2 와 충돌 → 3.x 캡 pyannote-metrics>=3.2,<4 -pyannote.audio==3.3.2 +# 배포명은 PyPI에서 pyannote-audio (pip 에서 pyannote.audio 로도 동일) +pyannote-audio==3.3.2