Apprendre Python (le langage) est une chose, "comprendre" l'écosystème Python est encore une autre paire de manches, d'autant que de nouveaux outils apparaissent et disparaissent sans cesse. Mais ce n'est pas une raison pour ne pas essayer d'en faire une synthèse ... (J'ai même pondu un petit coggle ici)

En premier lieu, c'est plutôt un point de détail pour le débutant, mais il existe différentes implémentations (on peut aussi parler d'interpréteurs). Je crois que le plus simple pour comprendre ce que ça recouvre est d'utiliser une analogie linguistique : la langue française est, comme le langage Python, un standard. Elle a ses règles, sa syntaxe, des documents qui font autorité. Une implémentation correspond à ce qui est réellement parlé. L'implémentation qui utilise chocolatine risque de ne pas être comprise ailleurs que dans le sud-ouest :)
Bref, pour revenir à nos serpents, CPython est celle de référence, que l'on utilise généralement sans le savoir (par exemple quand on télécharge Python sur le site officiel).
Jython, IronPython ou encore PyPy en sont d'autres, et correspondent à des besoins spécifiques que l'on peut à mon avis laisser de côté lorsqu'on démarre [1]

Plus immédiatement utile, le choix de l'environnement de développement (IDE). On peut évidemment développer avec un simple éditeur de texte, mais les IDE offrent davantage de fonctionnalités (débugger, auto-complétion, console, explorateur de fichiers, etc ...). IDLE est celui que l'on récupère en téléchargeant Python, mais n'est pas au niveau de la liste qui suit. Parmi les plus réputés (en 2018) :

  • PyCharm est un de ceux qui recueillent le plus de suffrages
  • PyScripter, gratuit et open source
  • Spyder, multi-plateformes et open source, qui intègre de nombreuses bibliothèques (voir ci-dessous)
  • Pyzo
  • Sublime Text qui est plus proche de l'éditeur avancé. On pourra aussi citer Atom, ou Visual Studio Code.

Viennent ensuite les librairies, ou bibliothèques, que l'on peut voir comme des modules spécialisés permettant d'étendre les capacités de base du langage (la Python standard library). Elles s'installent "depuis Python", grâce aux gestionnaires de paquets que sont pip (quand on installe la distribution officielle) ou conda (quand on utilise Anaconda, cf plus bas)[2]. Parmi les librairies les plus utilisées on peut compter :

  • NumPy et SciPy pour le calcul scientifique au sens large
  • Pandas plus orienté (big) data science
  • matplotlib ou plotly pour le tracé de graphiques et la data visualization (on écrira dataviz sur un CV afin de donner l'impression au recruteur qu'on y connait quelque chose)
  • Requests, Scrapy ou BeautifulSoup pour du scraping/parsing de sites web
  • wxPython, pyQT ou pyGTK pour le développement de GUI (Python est normalement livré avec Tkinter)
  • scikit-learn ou PyTorch pour le deep learning / machine learning
  • openCV pour la reconnaissance d'images ("IA based")
  • etc etc ...

Figurent ici les plus hype du moment, mais comme ce monde bouge vite ça ne sera sans doute plus vrai d'ici 2 ans. Le plus simple est de demander à votre moteur de recherche préféré "python library for xxx", et il y aura très probablement quelque chose qui répond plus ou moins bien à votre besoin.

Lorsqu'on commence à installer plein de librairies, parfois dans différentes versions car il y aura forcément des problèmes de compatibilité, ça peut vite devenir compliqué à gérer surtout si vous voulez tester des choses, revenir en arrière, etc ...
Une des forces de Python est de proposer des environnements virtuels de travail (pas très éloignés dans l'idée de ce que propose un émulateur qui vous permet de faire tourner Linux sur votre PC Windows ... ou l'inverse). Pour comprendre comment fonctionne la commande virtualenv, voir par exemple ce lien

Un cran au-dessus en termes d'intégration, on trouve les distributions, qui forment des ensembles cohérents proposant à la fois une implémentation Python, un IDE, et plusieurs librairies. En règle générale, si vous installez une distribution il n'est pas nécessaire d'avoir installé Python au préalable. C'est du all inclusive !

  • Anaconda est une des plus riches, proposant même un "navigateur" qui simplifie entre autres la gestion des librairies et des environnements. Revers de la médaille, elle est plutôt volumineuse et l'espace disque occupé est conséquent (ça peut se compter en Go, contre de l'ordre d'une centaine de Mo pour l'installation CPython standard). Si cela représente un obstacle, sa version allégée Miniconda pourra la remplacer.
  • la distribution Enthought propose, à l'instar d'Anaconda, une IHM (nommée Canopy) et un gestionnaire de paquets (nommé EDM). Elle est, comme Anaconda, orientée "scientific and analytic"
  • Python(x,y)
  • ActivePython
  • WinPython

Les développeurs web pourront être intéressés par les frameworks, tels que :

  • Django
  • Bottle
  • Flask

Je ne m'étends pas, ce n'est pas vraiment mon rayon ...

Enfin il est impossible de finir ce tour d'horizon accéléré sans mentionner la famille d'outils ipynb. Cette histoire avait commencé avec IPython, créé en 2001, qui était au début un "simple" interpréteur Python. En 2011 cet outil a évolué pour offrir la possibilité de mixer du code (interprétable !) et du texte ou des graphiques dans un même fichier, appelé notebook, lisible par un navigateur web. L'extension de ce fichier est .ipynb, pour IPython NoteBook. En 2015 l'outil devient Jupyter, plus "agnostique" en termes de langage : son nom vient de Julia, Python et R qui sont 3 des langages dans lesquels il permet de développer. Mais les fichiers conservent toujours l'extension .ipynb ... JupyterLab va un cran plus loin en proposant une expérience plus proche d’un IDE, avec un navigateur, du multi-fenêtrage, une console, etc …

Notes

[1] Le touriste débutant en français apprend que le truc à côté du croissant s'appelle pain au chocolat ...

[2] Les plus attentifs auront remarqué que certains IDE viennent avec leurs bibliothèques, c'est par exemple le cas de Spyder