From f59358dad3d3970152f2d44b72e611b99c58a3a1 Mon Sep 17 00:00:00 2001 From: Roland Dobai Date: Thu, 25 Oct 2018 08:16:30 +0200 Subject: [PATCH] idf.py: Import from pyserial after packages have been checked Closes https://github.com/espressif/esp-idf/issues/2573 --- tools/check_python_dependencies.py | 4 +++- tools/idf.py | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/check_python_dependencies.py b/tools/check_python_dependencies.py index 37ba34de3..d8767004b 100755 --- a/tools/check_python_dependencies.py +++ b/tools/check_python_dependencies.py @@ -68,7 +68,9 @@ if __name__ == "__main__": print('The following Python requirements are not satisfied:') for requirement in not_satisfied: print(requirement) - print('Please run "{} -m pip install --user -r {}" for resolving the issue.'.format(sys.executable, args.requirements)) + print('Please refer to the Get Started section of the ESP-IDF Programming Guide for setting up the required ' + 'packages. Alternatively, you can run "{} -m pip install --user -r {}" for resolving the issue.' + ''.format(sys.executable, args.requirements)) sys.exit(1) print('Python requirements from {} are satisfied.'.format(args.requirements)) diff --git a/tools/idf.py b/tools/idf.py index a4e0573d8..716bbf50b 100755 --- a/tools/idf.py +++ b/tools/idf.py @@ -22,7 +22,7 @@ # limitations under the License. # -# Note: we don't check for Python build-time dependencies until +# WARNING: we don't check for Python build-time dependencies until # check_environment() function below. If possible, avoid importing # any external libraries here - put in external script, or import in # their specific function instead. @@ -35,7 +35,6 @@ import multiprocessing import re import shutil import json -import serial.tools.list_ports class FatalError(RuntimeError): """ @@ -419,6 +418,9 @@ def get_default_serial_port(): Same logic as esptool.py search order, reverse sort by name and choose the first port. """ + # Import is done here in order to move it after the check_environment() ensured that pyserial has been installed + import serial.tools.list_ports + ports = list(reversed(sorted( p.device for p in serial.tools.list_ports.comports() ))) try: