Skip to content

Replace deprecated pkg_resources with packaging.requirements#6239

Open
junagent wants to merge 1 commit intojina-ai:masterfrom
junagent:fix/replace-pkg-resources-with-packaging
Open

Replace deprecated pkg_resources with packaging.requirements#6239
junagent wants to merge 1 commit intojina-ai:masterfrom
junagent:fix/replace-pkg-resources-with-packaging

Conversation

@junagent
Copy link

Summary

Replace pkg_resources.Requirement with packaging.requirements.Requirement in install_requirements_helper.py.

Problem

The file imports Requirement from the deprecated pkg_resources module:

from pkg_resources import Requirement

With setuptools 82 removing pkg_resources (PEP 740), this import will break on newer Python installations.

Fix

jina already has packaging>=20.0 as a core dependency, so the replacement is straightforward:

Before After
from pkg_resources import Requirement from packaging.requirements import Requirement
Requirement.parse(line) Requirement(line)
.project_name .name

The packaging.requirements.Requirement API is equivalent for parsing requirement strings and accessing name/extras attributes.

Note: The _is_requirements_installed function still uses pkg_resources.require() for runtime dependency checking. This is a separate concern and not changed in this PR.

Replace deprecated pkg_resources.Requirement with packaging.requirements
Requirement (already a core dependency: packaging>=20.0).

Changes:
- from pkg_resources import Requirement -> from packaging.requirements import Requirement
- Requirement.parse(line) -> Requirement(line)
- .project_name -> .name

setuptools 82 removed pkg_resources (PEP 740), making this dependency
unreliable for newer Python installations.
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.

1 participant