Message321047
AFAIU, the change for https://bugs.python.org/issue19764 broke the following usage of subprocess on Windows (re-using a subprocess.STARTUPINFO instance to hide the command window):
import os, subprocess
STARTUPINFO = subprocess.STARTUPINFO()
STARTUPINFO.dwFlags |= subprocess.STARTF_USESHOWWINDOW
STARTUPINFO.wShowWindow = subprocess.SW_HIDE
# raises OSError: [WinError 87]
# in the second loop iteration starting with Python 3.7
for i in range(2):
print(i)
with open(os.devnull, 'w') as stderr:
subprocess.check_call(['attrib'], stderr=stderr,
startupinfo=STARTUPINFO)
AFAICT, this works on Python 2.7, 3.4, 3.5, and 3.6
I think the documentation in
https://docs.python.org/3/library/subprocess.html#windows-popen-helpers
does not mention that every Popen call should be done with a fresh instance, so either the documentation needs to be changed, or the implementation (e.g. by deep-copying the instance).
See also https://bugs.python.org/issue19764#msg320784 |
|
Date |
User |
Action |
Args |
2018-07-04 14:55:46 | xflr6 | set | recipients:
+ xflr6, vstinner, eryksun |
2018-07-04 14:55:46 | xflr6 | set | messageid: <1530716146.72.0.56676864532.issue34044@psf.upfronthosting.co.za> |
2018-07-04 14:55:46 | xflr6 | link | issue34044 messages |
2018-07-04 14:55:46 | xflr6 | create | |
|