Skip to content

[Feature Request]: ChromaDB supports for python 3.13  #2739

Description

@namogg

Describe the problem

Cannot install chromadb for python 3.13 because chromadb doesnt work with numpy > 2.0.0 and i can only install numpy 2.1.0.

python3.13-nogil -m pip install -r requirements.txt
Defaulting to user installation because normal site-packages is not writeable
Ignoring graphlib_backport: markers 'python_version < "3.9"' don't match your environment
Collecting bcrypt>=4.0.1 (from -r requirements.txt (line 1))
  Using cached bcrypt-4.2.0.tar.gz (24 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting chroma-hnswlib==0.7.6 (from -r requirements.txt (line 2))
  Using cached chroma_hnswlib-0.7.6.tar.gz (32 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting fastapi>=0.95.2 (from -r requirements.txt (line 3))
  Using cached fastapi-0.112.2-py3-none-any.whl.metadata (27 kB)
Collecting grpcio>=1.58.0 (from -r requirements.txt (line 5))
  Using cached grpcio-1.66.1.tar.gz (12.3 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting httpx>=0.27.0 (from -r requirements.txt (line 6))
  Using cached httpx-0.27.2-py3-none-any.whl.metadata (7.1 kB)
Collecting importlib-resources (from -r requirements.txt (line 7))
  Using cached importlib_resources-6.4.4-py3-none-any.whl.metadata (4.0 kB)
Collecting kubernetes>=28.1.0 (from -r requirements.txt (line 8))
  Using cached kubernetes-30.1.0-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting mmh3>=4.0.1 (from -r requirements.txt (line 9))
  Using cached mmh3-4.1.0.tar.gz (26 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting opentelemetry-api>=1.2.0 (from -r requirements.txt (line 10))
  Using cached opentelemetry_api-1.27.0-py3-none-any.whl.metadata (1.4 kB)
Collecting opentelemetry-exporter-otlp-proto-grpc>=1.24.0 (from -r requirements.txt (line 11))
  Using cached opentelemetry_exporter_otlp_proto_grpc-1.27.0-py3-none-any.whl.metadata (2.3 kB)
Collecting opentelemetry-instrumentation-fastapi>=0.41b0 (from -r requirements.txt (line 12))
  Using cached opentelemetry_instrumentation_fastapi-0.48b0-py3-none-any.whl.metadata (2.1 kB)
Collecting opentelemetry-sdk>=1.2.0 (from -r requirements.txt (line 13))
  Using cached opentelemetry_sdk-1.27.0-py3-none-any.whl.metadata (1.5 kB)
Collecting overrides>=7.3.1 (from -r requirements.txt (line 15))
  Using cached overrides-7.7.0-py3-none-any.whl.metadata (5.8 kB)
Collecting posthog>=2.4.0 (from -r requirements.txt (line 16))
  Using cached posthog-3.6.0-py2.py3-none-any.whl.metadata (2.0 kB)
Collecting pydantic>=1.9 (from -r requirements.txt (line 17))
  Using cached pydantic-2.8.2-py3-none-any.whl.metadata (125 kB)
Collecting pypika>=0.48.9 (from -r requirements.txt (line 18))
  Using cached PyPika-0.48.9.tar.gz (67 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting PyYAML>=6.0.0 (from -r requirements.txt (line 19))
  Using cached pyyaml-6.0.2.tar.gz (130 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting rich>=10.11.0 (from -r requirements.txt (line 20))
  Using cached rich-13.8.0-py3-none-any.whl.metadata (18 kB)
Collecting tenacity>=8.2.3 (from -r requirements.txt (line 21))
  Using cached tenacity-9.0.0-py3-none-any.whl.metadata (1.2 kB)
Collecting tqdm>=4.65.0 (from -r requirements.txt (line 23))
  Using cached tqdm-4.66.5-py3-none-any.whl.metadata (57 kB)
Collecting typer>=0.9.0 (from -r requirements.txt (line 24))
  Downloading typer-0.12.5-py3-none-any.whl.metadata (15 kB)
Collecting typing_extensions>=4.5.0 (from -r requirements.txt (line 25))
  Using cached typing_extensions-4.12.2-py3-none-any.whl.metadata (3.0 kB)
Collecting uvicorn>=0.18.3 (from uvicorn[standard]>=0.18.3->-r requirements.txt (line 26))
  Using cached uvicorn-0.30.6-py3-none-any.whl.metadata (6.6 kB)
Requirement already satisfied: numpy in /home/aiserver/.local/lib/python3.13t/site-packages (from chroma-hnswlib==0.7.6->-r requirements.txt (line 2)) (2.1.0)
Collecting starlette<0.39.0,>=0.37.2 (from fastapi>=0.95.2->-r requirements.txt (line 3))
  Using cached starlette-0.38.2-py3-none-any.whl.metadata (5.9 kB)
Collecting anyio (from httpx>=0.27.0->-r requirements.txt (line 6))
  Downloading anyio-4.4.0-py3-none-any.whl.metadata (4.6 kB)
Collecting certifi (from httpx>=0.27.0->-r requirements.txt (line 6))
  Downloading certifi-2024.7.4-py3-none-any.whl.metadata (2.2 kB)
Collecting httpcore==1.* (from httpx>=0.27.0->-r requirements.txt (line 6))
  Downloading httpcore-1.0.5-py3-none-any.whl.metadata (20 kB)
Collecting idna (from httpx>=0.27.0->-r requirements.txt (line 6))
  Downloading idna-3.8-py3-none-any.whl.metadata (9.9 kB)
Collecting sniffio (from httpx>=0.27.0->-r requirements.txt (line 6))
  Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)
Collecting h11<0.15,>=0.13 (from httpcore==1.*->httpx>=0.27.0->-r requirements.txt (line 6))
  Downloading h11-0.14.0-py3-none-any.whl.metadata (8.2 kB)
Collecting six>=1.9.0 (from kubernetes>=28.1.0->-r requirements.txt (line 8))
  Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB)
Collecting python-dateutil>=2.5.3 (from kubernetes>=28.1.0->-r requirements.txt (line 8))
  Using cached python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting google-auth>=1.0.1 (from kubernetes>=28.1.0->-r requirements.txt (line 8))
  Downloading google_auth-2.34.0-py2.py3-none-any.whl.metadata (4.7 kB)
Collecting websocket-client!=0.40.0,!=0.41.*,!=0.42.*,>=0.32.0 (from kubernetes>=28.1.0->-r requirements.txt (line 8))
  Downloading websocket_client-1.8.0-py3-none-any.whl.metadata (8.0 kB)
Collecting requests (from kubernetes>=28.1.0->-r requirements.txt (line 8))
  Using cached requests-2.32.3-py3-none-any.whl.metadata (4.6 kB)
Collecting requests-oauthlib (from kubernetes>=28.1.0->-r requirements.txt (line 8))
  Downloading requests_oauthlib-2.0.0-py2.py3-none-any.whl.metadata (11 kB)
Collecting oauthlib>=3.2.2 (from kubernetes>=28.1.0->-r requirements.txt (line 8))
  Downloading oauthlib-3.2.2-py3-none-any.whl.metadata (7.5 kB)
Collecting urllib3>=1.24.2 (from kubernetes>=28.1.0->-r requirements.txt (line 8))
  Downloading urllib3-2.2.2-py3-none-any.whl.metadata (6.4 kB)
Collecting deprecated>=1.2.6 (from opentelemetry-api>=1.2.0->-r requirements.txt (line 10))
  Downloading Deprecated-1.2.14-py2.py3-none-any.whl.metadata (5.4 kB)
Collecting importlib-metadata<=8.4.0,>=6.0 (from opentelemetry-api>=1.2.0->-r requirements.txt (line 10))
  Downloading importlib_metadata-8.4.0-py3-none-any.whl.metadata (4.7 kB)
Collecting googleapis-common-protos~=1.52 (from opentelemetry-exporter-otlp-proto-grpc>=1.24.0->-r requirements.txt (line 11))
  Downloading googleapis_common_protos-1.65.0-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting opentelemetry-exporter-otlp-proto-common==1.27.0 (from opentelemetry-exporter-otlp-proto-grpc>=1.24.0->-r requirements.txt (line 11))
  Downloading opentelemetry_exporter_otlp_proto_common-1.27.0-py3-none-any.whl.metadata (1.8 kB)
Collecting opentelemetry-proto==1.27.0 (from opentelemetry-exporter-otlp-proto-grpc>=1.24.0->-r requirements.txt (line 11))
  Downloading opentelemetry_proto-1.27.0-py3-none-any.whl.metadata (2.3 kB)
Collecting protobuf<5.0,>=3.19 (from opentelemetry-proto==1.27.0->opentelemetry-exporter-otlp-proto-grpc>=1.24.0->-r requirements.txt (line 11))
  Downloading protobuf-4.25.4-py3-none-any.whl.metadata (541 bytes)
Collecting opentelemetry-instrumentation-asgi==0.48b0 (from opentelemetry-instrumentation-fastapi>=0.41b0->-r requirements.txt (line 12))
  Downloading opentelemetry_instrumentation_asgi-0.48b0-py3-none-any.whl.metadata (2.0 kB)
Collecting opentelemetry-instrumentation==0.48b0 (from opentelemetry-instrumentation-fastapi>=0.41b0->-r requirements.txt (line 12))
  Downloading opentelemetry_instrumentation-0.48b0-py3-none-any.whl.metadata (6.1 kB)
Collecting opentelemetry-semantic-conventions==0.48b0 (from opentelemetry-instrumentation-fastapi>=0.41b0->-r requirements.txt (line 12))
  Downloading opentelemetry_semantic_conventions-0.48b0-py3-none-any.whl.metadata (2.4 kB)
Collecting opentelemetry-util-http==0.48b0 (from opentelemetry-instrumentation-fastapi>=0.41b0->-r requirements.txt (line 12))
  Downloading opentelemetry_util_http-0.48b0-py3-none-any.whl.metadata (2.5 kB)
Collecting setuptools>=16.0 (from opentelemetry-instrumentation==0.48b0->opentelemetry-instrumentation-fastapi>=0.41b0->-r requirements.txt (line 12))
  Using cached setuptools-74.0.0-py3-none-any.whl.metadata (6.7 kB)
Collecting wrapt<2.0.0,>=1.0.0 (from opentelemetry-instrumentation==0.48b0->opentelemetry-instrumentation-fastapi>=0.41b0->-r requirements.txt (line 12))
  Downloading wrapt-1.16.0-py3-none-any.whl.metadata (6.6 kB)
Collecting asgiref~=3.0 (from opentelemetry-instrumentation-asgi==0.48b0->opentelemetry-instrumentation-fastapi>=0.41b0->-r requirements.txt (line 12))
  Downloading asgiref-3.8.1-py3-none-any.whl.metadata (9.3 kB)
Collecting monotonic>=1.5 (from posthog>=2.4.0->-r requirements.txt (line 16))
  Downloading monotonic-1.6-py2.py3-none-any.whl.metadata (1.5 kB)
Collecting backoff>=1.10.0 (from posthog>=2.4.0->-r requirements.txt (line 16))
  Using cached backoff-2.2.1-py3-none-any.whl.metadata (14 kB)
Collecting annotated-types>=0.4.0 (from pydantic>=1.9->-r requirements.txt (line 17))
  Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
Collecting pydantic-core==2.20.1 (from pydantic>=1.9->-r requirements.txt (line 17))
  Downloading pydantic_core-2.20.1.tar.gz (388 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      
      Cargo, the Rust package manager, is not installed or is not on PATH.
      This package requires Rust and Cargo to compile extensions. Install it through
      the system's package manager or via https://rustup.rs/
      
      Checking for Rust toolchain....
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.

Describe the proposed solution

Support for python 3.13

Alternatives considered

No response

Importance

i cannot use Chroma without it

Additional Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions