Reasons why Python is great to teach:
* Simplicity - you can write Hello world and have a 'that's cool' moment earlier than java
* General purpose - whether you're interested in web apps, data analysis, games, command line apps, you'll be able to do it with Python (the 'second best language for any problem' aspect)
* Community - a lot of people know it, it's easy to get questions answered. There are libraries, tutorials, etc
Reasons why Python is not great to teach:
* Horrible set up even with (or because of?) modern tooling and many options. Many beginners will get frustrated and lose interest after several hours of messing with configuration
* Too magic sometimes - easy to pick up bad habits by doing things that are 'allowed' in Python, but not in most languages
Overall I still think Python is one of the best first languages to show someone, but I'm glad I learned Java shortly afterwards followed by brief introductions to dozens more languages.