mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-02 12:14:32 +02:00
tools: fix idf_tools.py exception with python3
use `subprocess.Popen` when catch TypeError: ``` Traceback (most recent call last): File "tools/idf_tools.py", line 1249, in <module> main(sys.argv[1:]) File "tools/idf_tools.py", line 1245, in main action_func(args) File "tools/idf_tools.py", line 1038, in action_install tool_obj.find_installed_versions() File "tools/idf_tools.py", line 468, in find_installed_versions ver_str = self.check_version() File "tools/idf_tools.py", line 426, in check_version version_cmd_result = run_cmd_check_output(cmd, None, extra_paths) File "tools/idf_tools.py", line 176, in run_cmd_check_output result = subprocess.run(cmd, capture_output=True, check=True, input=input_text) File "/opt/pyenv/pyenv-1.2.6/versions/3.5.5/lib/python3.5/subprocess.py", line 383, in run with Popen(*popenargs, **kwargs) as process: TypeError: __init__() got an unexpected keyword argument 'capture_output' ```
This commit is contained in:
@@ -175,7 +175,7 @@ def run_cmd_check_output(cmd, input_text=None, extra_paths=None):
|
|||||||
input_text = input_text.encode()
|
input_text = input_text.encode()
|
||||||
result = subprocess.run(cmd, capture_output=True, check=True, input=input_text)
|
result = subprocess.run(cmd, capture_output=True, check=True, input=input_text)
|
||||||
return result.stdout + result.stderr
|
return result.stdout + result.stderr
|
||||||
except AttributeError:
|
except (AttributeError, TypeError):
|
||||||
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
|
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stdin=subprocess.PIPE, stderr=subprocess.PIPE)
|
||||||
stdout, stderr = p.communicate(input_text)
|
stdout, stderr = p.communicate(input_text)
|
||||||
if p.returncode != 0:
|
if p.returncode != 0:
|
||||||
|
Reference in New Issue
Block a user