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
This commit is contained in:
dosangyoon
2026-03-23 16:26:46 +09:00
parent 1c7e09ffcf
commit e74805f2fd
2 changed files with 22 additions and 3 deletions

View File

@@ -205,7 +205,17 @@ conda install -n ncue "numpy<2.2" -c conda-forge
이 저장소 `requirements.txt`에는 위와 같이 **`numpy<2.2`** 를 명시해 두었습니다. 이미 깨진 환경은 위처럼 한 번 재설치하면 됩니다. 이 저장소 `requirements.txt`에는 위와 같이 **`numpy<2.2`** 를 명시해 두었습니다. 이미 깨진 환경은 위처럼 한 번 재설치하면 됩니다.
**`pyannote-metrics 4.x` 와 NumPy 버전 경고** **`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` 로 다시 맞춥니다.
**같은 서버에서 빠른 점검** **같은 서버에서 빠른 점검**

View File

@@ -4,6 +4,10 @@
# pip install -r requirements.txt # pip install -r requirements.txt
# pip install -r requirements-diarize.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 # `pyannote.audio>=3.1.0` 만 단독으로 두면 최신 메이저가 끌려와 torch/lightning/opentelemetry
# 등으로 pip 해석 깊이가 커져 Linux에서 resolution-too-deep 이 날 수 있습니다. # 등으로 pip 해석 깊이가 커져 Linux에서 resolution-too-deep 이 날 수 있습니다.
# 여기서는 pyannote 3.3.x + torch를 고정합니다 (PyPI 메타: torch>=2.0.0). # 여기서는 pyannote 3.3.x + torch를 고정합니다 (PyPI 메타: torch>=2.0.0).
@@ -14,6 +18,11 @@ torch==2.5.1
torchaudio==2.5.1 torchaudio==2.5.1
lightning==2.4.0 lightning==2.4.0
huggingface_hub>=0.26.0,<0.36.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-metrics>=3.2,<4
pyannote.audio==3.3.2 # 배포명은 PyPI에서 pyannote-audio (pip 에서 pyannote.audio 로도 동일)
pyannote-audio==3.3.2