mirror of https://github.com/python/cpython
bpo-40280: Use presence of msvcrt module to detect Windows (GH-30930)
This commit is contained in:
parent
897ce90187
commit
606e496dd6
|
@ -65,10 +65,15 @@ __all__ = ["Popen", "PIPE", "STDOUT", "call", "check_call", "getstatusoutput",
|
|||
# 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,
|
||||
|
|
|
@ -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).
|
||||
|
|
Loading…
Reference in New Issue