python: Make it compatible with python3.12
Python 3.12 removes distutils so it's mandatory to use setuptools with
python >= 3.12.
This patch prints a message when trying to run the setup.py script with
a python >= 3.12 without setuptools and try to use the setuptools import
by default.
This patch also creates a new file, pyproject.toml [1], to prepare for
building in modern systems.
[1] https://peps.python.org/pep-0517/
diff --git a/python/pyproject.toml b/python/pyproject.toml
new file mode 100755
index 0000000..fed528d
--- /dev/null
+++ b/python/pyproject.toml
@@ -0,0 +1,3 @@
+[build-system]
+requires = ["setuptools"]
+build-backend = "setuptools.build_meta"
diff --git a/python/setup.py.in b/python/setup.py.in
index bcc4da4..d75fe55 100755
--- a/python/setup.py.in
+++ b/python/setup.py.in
@@ -5,11 +5,15 @@
import sys, os
try:
- import setuptools
+ from setuptools import setup, Extension
except ImportError:
- pass
-
-from distutils.core import setup, Extension
+ try:
+ # Using distutils, for python < 3.12
+ from distutils.core import setup, Extension
+ except ImportError:
+ # distutils is not present in python 3.12 and greater
+ print("setuptools is required for python >= 3.12")
+ sys.exit(1)
# Below ROOT, we expect to find include, include/libxml2, lib and bin.
# On *nix, it is not needed (but should not harm),