From f4915f1862c445a6a2f0e41352a100489b267087 Mon Sep 17 00:00:00 2001 From: Miles Cranmer Date: Fri, 15 Dec 2023 02:29:02 -0600 Subject: [PATCH 1/2] Rename `distutils.sysconfig` to `sysconfig` - Required for Python 3.12 as distutils is removed. --- deps/buildutils.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/buildutils.jl b/deps/buildutils.jl index 5eb27b94..07ae8254 100644 --- a/deps/buildutils.jl +++ b/deps/buildutils.jl @@ -5,7 +5,7 @@ import Conda, Libdl pyvar(python::AbstractString, mod::AbstractString, var::AbstractString) = chomp(read(pythonenv(`$python -c "import $mod; print($mod.$(var))"`), String)) -pyconfigvar(python::AbstractString, var::AbstractString) = pyvar(python, "distutils.sysconfig", "get_config_var('$(var)')") +pyconfigvar(python::AbstractString, var::AbstractString) = pyvar(python, "sysconfig", "get_config_var('$(var)')") pyconfigvar(python, var, default) = let v = pyconfigvar(python, var) v == "None" ? default : v end From 78535b12c68809c938b6edccdaf2d6cfaf21bb7b Mon Sep 17 00:00:00 2001 From: Miles Cranmer Date: Fri, 15 Dec 2023 13:17:21 -0600 Subject: [PATCH 2/2] Fallback to `distutils.sysconfig` --- deps/buildutils.jl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/deps/buildutils.jl b/deps/buildutils.jl index 07ae8254..f090875e 100644 --- a/deps/buildutils.jl +++ b/deps/buildutils.jl @@ -5,7 +5,15 @@ import Conda, Libdl pyvar(python::AbstractString, mod::AbstractString, var::AbstractString) = chomp(read(pythonenv(`$python -c "import $mod; print($mod.$(var))"`), String)) -pyconfigvar(python::AbstractString, var::AbstractString) = pyvar(python, "sysconfig", "get_config_var('$(var)')") +function pyconfigvar(python::AbstractString, var::AbstractString) + try + pyvar(python, "sysconfig", "get_config_var('$(var)')") + catch e + emsg = sprint(showerror, e) + @warn "Encountered error on using `sysconfig`: $emsg. Falling back to `distutils.sysconfig`." + pyvar(python, "distutils.sysconfig", "get_config_var('$(var)')") + end +end pyconfigvar(python, var, default) = let v = pyconfigvar(python, var) v == "None" ? default : v end