bpo-40280: Use presence of msvcrt module to detect Windows (GH-30930)

This commit is contained in:
Christian Heimes 2022-01-27 11:57:43 +02:00 committed by GitHub
parent 897ce90187
commit 606e496dd6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View file

@ -65,10 +65,15 @@
# NOTE: We intentionally exclude list2cmdline as it is
# considered an internal implementation detail. issue10838.
_mswindows = sys.platform == "win32"
# use presence of msvcrt to detect Windows-like platforms (see bpo-8110)
try:
import msvcrt
except ModuleNotFoundError:
_mswindows = False
else:
_mswindows = True
if _mswindows:
import msvcrt
import _winapi
from _winapi import (CREATE_NEW_CONSOLE, CREATE_NEW_PROCESS_GROUP,
STD_INPUT_HANDLE, STD_OUTPUT_HANDLE,

View file

@ -1,4 +1,4 @@
:mod:`subprocess` now imports Windows-specific imports when
``sys.platform == "win32"`` and POSIX-specific imports on all other
``msvcrt`` module is available, and POSIX-specific imports on all other
platforms. This gives a clean exception when ``_posixsubprocess`` is not
available (e.g. Emscripten browser target) and it's slightly faster, too.
available (e.g. Emscripten browser target).