Fixed #8577. distutils.sysconfig.get_python_inc() now differenciates buildir and srcdir
diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
index 54ccec4..bb53315 100644
--- a/Lib/distutils/sysconfig.py
+++ b/Lib/distutils/sysconfig.py
@@ -71,15 +71,19 @@
"""
if prefix is None:
prefix = plat_specific and EXEC_PREFIX or PREFIX
+
if os.name == "posix":
if python_build:
- base = os.path.dirname(os.path.abspath(sys.executable))
+ buildir = os.path.dirname(sys.executable)
if plat_specific:
- inc_dir = base
+ # python.h is located in the buildir
+ inc_dir = buildir
else:
- inc_dir = os.path.join(base, "Include")
- if not os.path.exists(inc_dir):
- inc_dir = os.path.join(os.path.dirname(base), "Include")
+ # the source dir is relative to the buildir
+ srcdir = os.path.abspath(os.path.join(buildir,
+ get_config_var('srcdir')))
+ # Include is located in the srcdir
+ inc_dir = os.path.join(srcdir, "Include")
return inc_dir
return os.path.join(prefix, "include", "python" + get_python_version())
elif os.name == "nt":
diff --git a/Misc/NEWS b/Misc/NEWS
index a43825c..b42665a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -31,6 +31,10 @@
Library
-------
+- Issue #8577: distutils.sysconfig.get_python_inc() now makes a difference
+ between the build dir and the source dir when looking for "python.h" or
+ "Include".
+
- Issue #8464: tarfile no longer creates files with execute permissions set
when mode="w|" is used.