Skip to content

Commit

Permalink
bpo-40280: Use presence of msvcrt module to detect Windows (GH-30930)
Browse files Browse the repository at this point in the history
  • Loading branch information
tiran committed Jan 27, 2022
1 parent 897ce90 commit 606e496
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 4 deletions.
9 changes: 7 additions & 2 deletions Lib/subprocess.py
Expand Up @@ -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,
Expand Down
@@ -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).

0 comments on commit 606e496

Please sign in to comment.