From cb2b3c8d3566ae46b3b8d0718019e1c98484589e Mon Sep 17 00:00:00 2001 From: Christian Heimes Date: Thu, 2 Dec 2021 11:17:37 +0200 Subject: bpo-40280: Emscripten has no support for subprocesses (GH-29872) Fixes ``platform`` and ``help()`` on emscripten. Signed-off-by: Christian Heimes Automerge-Triggered-By: GH:tiran --- Lib/platform.py | 10 ++++++++-- Lib/pydoc.py | 2 ++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Lib/platform.py b/Lib/platform.py index 9e9b422..3f3f25a 100755 --- a/Lib/platform.py +++ b/Lib/platform.py @@ -607,7 +607,10 @@ def _syscmd_file(target, default=''): # XXX Others too ? return default - import subprocess + try: + import subprocess + except ImportError: + return default target = _follow_symlinks(target) # "file" output is locale dependent: force the usage of the C locale # to get deterministic behavior. @@ -746,7 +749,10 @@ class _Processor: """ Fall back to `uname -p` """ - import subprocess + try: + import subprocess + except ImportError: + return None try: return subprocess.check_output( ['uname', '-p'], diff --git a/Lib/pydoc.py b/Lib/pydoc.py index 3a2ff21..7d52359 100755 --- a/Lib/pydoc.py +++ b/Lib/pydoc.py @@ -1556,6 +1556,8 @@ def getpager(): return plainpager if not sys.stdin.isatty() or not sys.stdout.isatty(): return plainpager + if sys.platform == "emscripten": + return plainpager use_pager = os.environ.get('MANPAGER') or os.environ.get('PAGER') if use_pager: if sys.platform == 'win32': # pipes completely broken in Windows -- cgit v0.12