From: Jack DeVries <58614260+jdevries3133@users.noreply.github.com> Date: Thu, 22 Jul 2021 18:23:29 +0000 (-0400) Subject: bpo-14879: [doc] clarify how to check for errors from subprocess.Popen(..., shell... X-Git-Tag: v3.11.0a1~608 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=50ffbe3dafcae7826d114df61d56c7ac45a6358c;p=thirdparty%2FPython%2Fcpython.git bpo-14879: [doc] clarify how to check for errors from subprocess.Popen(..., shell=True) (GH-26755) --- diff --git a/Doc/library/subprocess.rst b/Doc/library/subprocess.rst index 56b6b6e00157..6c127dcfd454 100644 --- a/Doc/library/subprocess.rst +++ b/Doc/library/subprocess.rst @@ -689,7 +689,10 @@ execute, will be re-raised in the parent. The most common exception raised is :exc:`OSError`. This occurs, for example, when trying to execute a non-existent file. Applications should prepare for -:exc:`OSError` exceptions. +:exc:`OSError` exceptions. Note that, when ``"shell=True"``, :exc:`OSError` +will be raised by the child only if the selected shell itself was not found. +To determine if the shell failed to find the requested application, it is +necessary to check the return code or output from the subprocess. A :exc:`ValueError` will be raised if :class:`Popen` is called with invalid arguments.