From cf792c4802e235d1d3a2a1a3ea04537425f58412 Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Mon, 28 Aug 2023 09:08:58 -0700 Subject: [PATCH] Remove distutils Distutils is gone in Python 3.12+. --- README.md | 4 ++-- pyproject.toml | 3 ++- setup.py | 9 ++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index c2b6e89b..c4945f83 100644 --- a/README.md +++ b/README.md @@ -94,8 +94,8 @@ Now, `cmake --version` should be at version 3.20.0 or newer. Or go: ```bash -# optional: --user -python3 -m pip install -U pip setuptools wheel +python3 -m pip install -U pip +python3 -m pip install -U build packaging setuptools wheel python3 -m pip install -U cmake ``` diff --git a/pyproject.toml b/pyproject.toml index d7096f82..f53522b5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -2,6 +2,7 @@ requires = [ "setuptools>=42", "wheel", - "cmake>=3.20.0,<4.0.0" + "cmake>=3.20.0,<4.0.0", + "packaging>=23", ] build-backend = "setuptools.build_meta" diff --git a/setup.py b/setup.py index 964c83a5..d6111451 100644 --- a/setup.py +++ b/setup.py @@ -7,7 +7,6 @@ # from distutils.command.build import build from distutils.command.clean import clean -from distutils.version import LooseVersion import os import platform import re @@ -54,6 +53,8 @@ def __init__(self, name, sourcedir=""): class CMakeBuild(build_ext): def run(self): + from packaging.version import parse + try: out = subprocess.check_output(["cmake", "--version"]) except OSError: @@ -63,10 +64,8 @@ def run(self): + ", ".join(e.name for e in self.extensions) ) - cmake_version = LooseVersion( - re.search(r"version\s*([\d.]+)", out.decode()).group(1) - ) - if cmake_version < "3.20.0": + cmake_version = parse(re.search(r"version\s*([\d.]+)", out.decode()).group(1)) + if cmake_version < parse("3.20.0"): raise RuntimeError("CMake >= 3.20.0 is required") for ext in self.extensions: