Tools: make Python import error more readable

The problem with printing the exception was that starting with
Python 3.6 the ImportError is yet another (sub) exception called
ModuleNotFoundError which can't be printed as a string and then triggers
another exception:

```
Traceback (most recent call last):
  File "/home/julianoes/src/Firmware/Tools/serial/generate_config.py", line 11, in <module>
    import jinja2
ModuleNotFoundError: No module named 'jinja2'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/julianoes/src/Firmware/Tools/serial/generate_config.py", line 13, in <module>
    print("Failed to import jinja2: " + e)
TypeError: must be str, not ModuleNotFoundError
```

As per @bkueng's suggestion the easiest is to cast the exception to str
and that way prevent the second exception.
This commit is contained in:
Julian Oes
2020-02-13 15:37:09 +01:00
committed by Beat Küng
parent 7cafbc824e
commit 9a96ca14be
8 changed files with 38 additions and 38 deletions

View File

@@ -16,7 +16,7 @@ from argparse import ArgumentParser
try:
from pymavlink import mavutil
except ImportError as e:
print("Failed to import pymavlink: " + e)
print("Failed to import pymavlink: " + str(e))
print("")
print("You may need to install it with:")
print(" pip3 install --user pymavlink")
@@ -26,7 +26,7 @@ except ImportError as e:
try:
import serial
except ImportError as e:
print("Failed to import pyserial: " + e)
print("Failed to import pyserial: " + str(e))
print("")
print("You may need to install it with:")
print(" pip3 install --user pyserial")