Python

Présentation des rudiments du langage Python.

Cette page présente quelques informations sur les divers environnements Python, sur les packages pouvant être utiles en modélisation numérique, et sur les moyens d’interfacer Python avec d’autres langages de programmation compilés (Fortran, C).

Vous êtes probablement déjà relativement familier avec Python, donc je ne m’étendrai pas sur le détail de la syntaxe. Toutefois, quelques informations pertinentes peuvent être mentionnées ici.

Environnements

Présentation des divers environnements (interpréteurs, gestionnaires de packages et outils) supportant Python.

Anaconda

Anaconda est probablement la distribution la plus populaire du langage Python, disponible sur plusieurs plateformes.

On peut y créer des environnements virtuels qui comportent une configuration précise (packages présents, etc.) en faisant:

conda create -n my-env
conda activate my-env

Pour installer un module:

conda install <module>

Pour ajouter un répertoire au PYTHONPATH, ce qui permet de créer soi-même des modules:

conda develop <dir>

Packages utiles

Quelques packages utiles pour la modélisation numérique.

  • numpy : se passe de présentation.
  • matplotlib : idem.
  • scipy : idem.
  • click : permet de créer facilement des interfaces de ligne de commande.
  • pickle : lecture/écriture disque d’objets en mode binaire.
  • tqdm : création de barres d’avancement en ligne de commande.
  • numba : permet de précompiler du code Python, ce qui accélère énormément sa vitesse d’exécution1.

Interface avec d’autres langages

Packages permettant de créer des codes hybrides comportant des modules compilés en C ou en Fortran, d’exécution beaucoup plus rapide que le Python de manière générale.

On peut interfacer du code Python avec des routines écrites en C ou en Fortran, avec Cython et F2PY respectivement.


  1. Dans la réalité, numba peut être très efficace pour accélérer des algorithmes très simples qui nécessitent peu de lignes de code et le moins de packages possible, mais son utilisation devient très difficile pour des codes plus longs, qui font appel à des packages externes ou du code orienté objet. De plus, les messages d’erreur de numba sont des plus cryptiques, donc bonne chance pour débugger votre code. ↩︎

Last modified December 16, 2021: add screenshots (5202782)