Fixes these errors: ModuleNotFoundError: No module named 'distutils.msvccompiler'
Signed-off-by: Markus Heidelberg <[email protected]> --- Is this an acceptable fix? The example on the NumPy website works. Later I found this fix: https://github.com/numpy/numpy/commit/1cc02cc6710384c52e1082a33d1617504eaed296 But there was no fix for the second build error, so I kept my solution. ...istutils.msvccompiler-in-setuptools-.patch | 45 +++++++++++++++++++ patches/numpy-1.26.4/series | 3 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 patches/numpy-1.26.4/0002-handle-missing-distutils.msvccompiler-in-setuptools-.patch diff --git a/patches/numpy-1.26.4/0002-handle-missing-distutils.msvccompiler-in-setuptools-.patch b/patches/numpy-1.26.4/0002-handle-missing-distutils.msvccompiler-in-setuptools-.patch new file mode 100644 index 000000000..c24cff9f9 --- /dev/null +++ b/patches/numpy-1.26.4/0002-handle-missing-distutils.msvccompiler-in-setuptools-.patch @@ -0,0 +1,45 @@ +From: Markus Heidelberg <[email protected]> +Date: Tue, 16 Dec 2025 11:50:00 +0100 +Subject: [PATCH] handle missing distutils.msvccompiler in setuptools >= 74.0.0 + +distutils._msvccompiler exists, but only provides the MSVCCompiler +class, not the get_build_version function. + +Signed-off-by: Markus Heidelberg <[email protected]> +--- + numpy/distutils/mingw32ccompiler.py | 4 +++- + numpy/distutils/msvccompiler.py | 2 +- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/numpy/distutils/mingw32ccompiler.py b/numpy/distutils/mingw32ccompiler.py +index 4763f41ad326..f504d8b6223d 100644 +--- a/numpy/distutils/mingw32ccompiler.py ++++ b/numpy/distutils/mingw32ccompiler.py +@@ -24,13 +24,15 @@ + + import distutils.cygwinccompiler + from distutils.unixccompiler import UnixCCompiler +-from distutils.msvccompiler import get_build_version as get_build_msvc_version + from distutils.errors import UnknownFileError + from numpy.distutils.misc_util import (msvc_runtime_library, + msvc_runtime_version, + msvc_runtime_major, + get_build_architecture) + ++def get_build_msvc_version(): ++ return None ++ + def get_msvcr_replacement(): + """Replacement for outdated version of get_msvcr from cygwinccompiler""" + msvcr = msvc_runtime_library() +diff --git a/numpy/distutils/msvccompiler.py b/numpy/distutils/msvccompiler.py +index 2b93221baac8..5e2a030404da 100644 +--- a/numpy/distutils/msvccompiler.py ++++ b/numpy/distutils/msvccompiler.py +@@ -1,5 +1,5 @@ + import os +-from distutils.msvccompiler import MSVCCompiler as _MSVCCompiler ++from distutils._msvccompiler import MSVCCompiler as _MSVCCompiler + + from .system_info import platform_bits + diff --git a/patches/numpy-1.26.4/series b/patches/numpy-1.26.4/series index a493ac227..57cb0bc5b 100644 --- a/patches/numpy-1.26.4/series +++ b/patches/numpy-1.26.4/series @@ -1,4 +1,5 @@ # generated by git-ptx-patches #tag:base --start-number 1 0001-use-path-from-environment-only-for-library_dirs.patch -# d9bc0f9a910e0d311ad4c7761b8f6062 - git-ptx-patches magic +0002-handle-missing-distutils.msvccompiler-in-setuptools-.patch +# 3e55650c70507297b27d494f0e36c7d4 - git-ptx-patches magic -- 2.43.0
