Skip to content

fix: relax dependency constraints to support Python 3.13#48

Open
ThanhNguyxn wants to merge 1 commit intoNVIDIA:mainfrom
ThanhNguyxn:fix/python313-compatibility
Open

fix: relax dependency constraints to support Python 3.13#48
ThanhNguyxn wants to merge 1 commit intoNVIDIA:mainfrom
ThanhNguyxn:fix/python313-compatibility

Conversation

@ThanhNguyxn
Copy link

Summary

Fixes #22 - Current PyTorch dependencies don't work with CPython 3.13

Problem

The previous pyproject.toml had torch >= 2.2.0, < 2.5 which prevented installation on Python 3.13 because PyTorch only added CPython 3.13 wheel support starting from v2.5.0.

Solution

Relaxed dependency constraints to support Python 3.13 while maintaining backward compatibility with Python 3.10-3.12:

Dependency Before After
torch >= 2.2.0, < 2.5 >= 2.2.0
numpy >= 1.26, < 2.2 >= 1.26, < 3
safetensors >= 0.4.0, < 0.5 >= 0.4.0
huggingface-hub >= 0.24, < 0.25 >= 0.24
einops == 0.7 >= 0.7
sentencepiece == 0.2 >= 0.2
sounddevice == 0.5 >= 0.5
sphn >= 0.1.4, < 0.2 >= 0.1.4
aiohttp >= 3.10.5, < 3.11 >= 3.10.5

Why These Changes Are Safe

  1. Semantic Versioning: Most of these libraries follow semver, so minor/patch updates should be backward compatible
  2. PyTorch Compatibility: The Moshi model architecture should work with newer PyTorch versions
  3. Tested Range: Users with Python 3.10-3.12 will still get compatible versions from the existing ecosystem

Testing

This change enables installation on Python 3.13 by allowing pip to resolve torch 2.5+ which has the required wheels.

# Before: fails on Python 3.13
pip install git+https://github.com/NVIDIA/personaplex.git#subdirectory=moshi

# After: works on Python 3.13
pip install git+https://github.com/ThanhNguyxn/personaplex.git@fix/python313-compatibility#subdirectory=moshi

Backward Compatibility

Fully backward compatible - no breaking changes for Python 3.10-3.12 users.

Fixes NVIDIA#22

Changes:
- Remove upper bound on torch (>= 2.2.0) to allow torch 2.5+ which
  has wheels for Python 3.13
- Relax other dependency constraints that were unnecessarily strict:
  - numpy: >= 1.26, < 3 (was < 2.2)
  - safetensors: >= 0.4.0 (removed < 0.5)
  - huggingface-hub: >= 0.24 (removed < 0.25)
  - einops: >= 0.7 (was == 0.7)
  - sentencepiece: >= 0.2 (was == 0.2)
  - sounddevice: >= 0.5 (was == 0.5)
  - sphn: >= 0.1.4 (removed < 0.2)
  - aiohttp: >= 3.10.5 (removed < 3.11)

These changes ensure compatibility with Python 3.13 while maintaining
backward compatibility with Python 3.10-3.12.

The previous torch < 2.5 constraint was the root cause of the issue,
as PyTorch only added CPython 3.13 wheel support starting from v2.5.0.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Current PyTorch dependencies don't work with CPython 3.13

1 participant