8000 bpo-39825: Fixes sysconfig.get_config_var('EXT_SUFFIX') on Windows to… · python/cpython@ca52aa3 · GitHub
[go: up one dir, main page]

Skip to content

Commit ca52aa3

Browse files
bpo-39825: Fixes sysconfig.get_config_var('EXT_SUFFIX') on Windows to match distutils (GH-22088)
(cherry picked from commit c0afb7f) Co-authored-by: Matti Picus <matti.picus@gmail.com>
1 parent a4e7d5f commit ca52aa3

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

Lib/sysconfig.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,10 +426,11 @@ def _init_posix(vars):
426426
def _init_non_posix(vars):
427427
"""Initialize the module as appropriate for NT"""
428428
# set basic install directories
429+
import _imp
429430
vars['LIBDEST'] = get_path('stdlib')
430431
vars['BINLIBDEST'] = get_path('platstdlib')
431432
vars['INCLUDEPY'] = get_path('include')
432-
vars['EXT_SUFFIX'] = '.pyd'
433+
vars['EXT_SUFFIX'] = _imp.extension_suffixes()[0]
433434
vars['EXE'] = '.exe'
434435
vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT
435436
vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable))

Lib/test/test_sysconfig.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,10 +358,12 @@ def test_SO_value(self):
358358

359359
@unittest.skipIf(sysconfig.get_config_var('EXT_SUFFIX') is None,
360360
'EXT_SUFFIX required for this test')
361-
def test_SO_in_vars(self):
361+
def test_EXT_SUFFIX_in_vars(self):
362+
import _imp
362363
vars = sysconfig.get_config_vars()
363364
self.assertIsNotNone(vars['SO'])
364365
self.assertEqual(vars['SO'], vars['EXT_SUFFIX'])
366+
self.assertEqual(vars['EXT_SUFFIX'], _imp.extension_suffixes()[0])
365367

366368
@unittest.skipUnless(sys.platform == 'linux' and
367369
hasattr(sys.implementation, '_multiarch'),
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Windows: Change ``sysconfig.get_config_var('EXT_SUFFIX')`` to the expected
2+
full ``platform_tag.extension`` format. Previously it was hard-coded to
3+
``.pyd``, now it is compatible with ``distutils.sysconfig`` and will result
4+
in something like ``.cp38-win_amd64.pyd``. This brings windows into
5+
conformance with the other platforms.

0 commit comments

Comments
 (0)
0