From 81723540206fc3010d4fc736da19aa93e17f82e1 Mon Sep 17 00:00:00 2001 From: Robolightning <89173189+Robolightning@users.noreply.github.com> Date: Mon, 23 Feb 2026 21:46:56 +0700 Subject: [PATCH] Replace pkg_resources with importlib.metadata for Python 3.12 compatibility (#3325) --- setup.py | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index c3e1f500d6..fe2f4495ce 100644 --- a/setup.py +++ b/setup.py @@ -2,9 +2,35 @@ import os import platform import re -from pkg_resources import DistributionNotFound, get_distribution, parse_version from setuptools import find_packages, setup +import sys +from setuptools import setup, find_packages + +# Replace pkg_resources.get_distribution and parse_version with modern alternatives +try: + # Python 3.8+ + from importlib.metadata import distribution as _dist, PackageNotFoundError + class _DistributionWrapper: + def __init__(self, dist): + self._dist = dist + @property + def version(self): + return self._dist.version + def get_distribution(name): + return _DistributionWrapper(_dist(name)) + DistributionNotFound = PackageNotFoundError +except ImportError: + # Fallback to legacy pkg_resources + from pkg_resources import get_distribution, DistributionNotFound + +try: + from packaging.version import parse as parse_version +except ImportError: + # Fallback for ancient environments (no comparison guarantees) + def parse_version(v): + return v + EXT_TYPE = '' try: import torch