huggingface/transformers · error · ValueError

can't find {pkg} in {deps.keys()}, check dependency_versions

Error message

can't find {pkg} in {deps.keys()}, check dependency_versions_table.py

What it means

On import/usage, transformers validates versions of packages listed in dependency_versions_table.py. require_version_core looks up each package name in that table; a name not present means the internal deps dict has no entry for it, so the check cannot construct a version constraint and raises. This is almost always triggered by code registering a new dependency without adding it to dependency_versions_table.py, or by passing an incorrect package name.

Source

Thrown at src/transformers/dependency_versions_check.py:58

    if pkg in deps:
        if pkg == "tokenizers":
            # must be loaded here, or else tqdm check may fail
            from .utils import is_tokenizers_available

            if not is_tokenizers_available():
                continue  # not required, check version only if installed
        elif pkg == "accelerate":
            # must be loaded here, or else tqdm check may fail
            from .utils import is_accelerate_available

            # Maybe switch to is_torch_available in the future here so that Accelerate is hard dep of
            # Transformers with PyTorch
            if not is_accelerate_available():
                continue  # not required, check version only if installed

        require_version_core(deps[pkg])
    else:
        raise ValueError(f"can't find {pkg} in {deps.keys()}, check dependency_versions_table.py")


def dep_version_check(pkg, hint=None):
    require_version(deps[pkg], hint)

View on GitHub (pinned to a597f97485)

Solutions

  1. Add the package to src/transformers/dependency_versions_table.py (e.g. 'mypkg': '>=1.0.0') so the check can find a constraint.
  2. If the package should not be checked, remove/adjust the call site instead of leaving an unregistered name.
  3. Verify spelling/casing of the package name matches the table key exactly.

Example fix

# before (dependency_versions_check.py)
require_version_core("newdep")  # ValueError: not in table

# after: register in dependency_versions_table.py
deps = {
    ...
    "newdep": ">=0.2.0",
}
# then require_version_core("newdep") succeeds
Defensive patterns

Strategy: validation

Validate before calling

from transformers.dependency_versions_table import deps
if pkg not in deps:
    raise ValueError(f"{pkg} missing from dependency_versions_table.py; add an entry before checking its version")

Prevention

When it happens

Trigger: Calling require_version_core('some_pkg') / dep_version_check('some_pkg') for a package absent from dependency_versions_table.py; adding a new optional import to the library and wiring the version check but forgetting the table entry; renaming a package in the check but not the table.

Common situations: Contributors adding a dependency in a PR; downstream forks that extend the version-check machinery; typos in package names in custom check calls.

Related errors


AI-assisted analysis of huggingface/transformers@a597f97485 (2026-08-14). Data as JSON: /api/errors/e8776d5236c373b7. Report an issue: GitHub.