fix(tools): extend error message for failed python module import

Currently idf.py reports just "Please use idf.py only in an ESP-IDF shell environment".
Sometimes it may be useful to know for which module the import failed.
Also the problem does not have to be related to shell environment only, but the
python venv can be corrupted. This adds a little bit more verbose error
message.

Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>
release/v5.0
Frantisek Hrbata 2023-08-30 08:14:50 +02:00
rodzic 7065c87963
commit ca31d75cc3
1 zmienionych plików z 8 dodań i 2 usunięć

Wyświetl plik

@ -41,9 +41,15 @@ try:
debug_print_idf_version, get_target, merge_action_lists, print_warning)
if os.getenv('IDF_COMPONENT_MANAGER') != '0':
from idf_component_manager import idf_extensions
except ImportError:
except ImportError as e:
# For example, importing click could cause this.
print('Please use idf.py only in an ESP-IDF shell environment.', file=sys.stderr)
print((f'Cannot import module "{e.name}". This usually means that "idf.py" was not '
f'spawned within an ESP-IDF shell environment or the python virtual '
f'environment used by "idf.py" is corrupted.\n'
f'Please use idf.py only in an ESP-IDF shell environment. If problem persists, '
f'please try to install ESP-IDF tools again as described in the Get Started guide.'),
file=sys.stderr)
sys.exit(1)
# Use this Python interpreter for any subprocesses we launch