Autour de Python pour le calcul scientifique

1. Python

On ne parle ici que de python 3 [w].

1.1 Installation

Il y a hélas énormément de façons d’installer python. Si le maniement des ordinateurs n’est pas votre tasse de thé, utilisez l’installateur Anaconda : voir la page de téléchargement (il permet notamment d’accéder aux packages scientifiques et à Jupyter).

1.2 Comment travailler avec python

Je propose 4 méthodes (il en existe d’autres). Les 3 premières nécessitent de faire appel à un “terminal” permettant d’exécuter des lignes de commandes [un terminal sous linux ou Mac OS et la ligne de commande sous Windows].  Pour ces 3 premières on crée un répertoire de travail dans lequel on se positionne:

mkdir répertoire_de_travail
cd répertoire_de_travail

Le choix de la méthode de travail reste une affaire personnelle:

Jupiter (très interacif) ) On exécute la commande: jupyter notebook cela va ouvrir une nouvelle fenêtre dans votre browser par défaut. Vous pouvez alors créer des fichiers ipynb. Ensuite voir par exemple ici pour une introduction aux notebooks.

Ipython (interactif) – Le shell de base de Python est très limité (taper la ligne de commande python, ou bien voir ici), il faut lui préférer le shell IPython qui est extrêmement puissant: historique conservé entre les sessions, reconnait les commandes de console unix (ls, cd, pwd, etc.), auto-complétion, couleur, aide puissante etc. Taper dans la ligne de commande: ipython

Edition/exécution – Vous utiliser votre éditeur préféré (emavs, vi,…) afin de créer un fichier fichier.py que vous exécutez par: python fichier.py

Environnements intégrés – Il existe plusieurs environnements de développement intégrés, (voir ici un comparatif) on en retiendra 3: (1) idle: très simple mais limité (1 fenêtre shell + 1 fenêtre éditeur). (2) Spyder :reprend l’idée d’un environnement intégré à la Matlab (multifenêtrage, éditeur avancé, inspecteur d’objets, possibilité d’utiliser IPython, débogueur via Pdb etc.). [sur github]. (3) Pydev : est un environnement de développement intégré (un plugin) pour Eclipse [installation : voir ici].

1.3 Modules et packages (paquets)

Voir les modules standard et  l’index des packagesPip [w] est la bonne façon d’installer et de gérer les paquets python.

1.4 Python scientifique

Pour un environnement de calcul scientifique (number cruncher) on fait appel à 3 packages:

  • numpy [w]: opérations vectorisées pour la manipulation de matrices.
  • scipy [w]: bibliothèque scientifique complète, construite sur numpy.
  • matplotlib [w]: bibliothèque graphique.

Voir www.scipy.org. Numpy est dans le même esprit de calcul vectorisé que matlab (voir numpy pour les pour les utilisateurs de matlab). La base est numpy, sur lequel les deux autres packages sont construits.

2. Git

Permet de gérer des dépôts sur GitHub et notamment des dépôts de notebooks sur nbviewer.

Git est un logiciel de gestion de version (eng. révision control) distribué (contrairement à subversion/svn qui est centralisé). Voir les documentations: sur le site de git ou sur le site du zéro [pdf], ou ce petit guide.

Les sites github ou google code permettent d’acceillir vos dépôts git. Donc: (1) s’inscrire sur GitHub, (2) installer git sur sa machine, (3) éventuellement installer une interface graphique pour utiliser git (par exemple Github Desktop ou SourceTree ou l’interface graphique proposée par GitHub).

  • Initialisation (à faire 1 fois):
    1. créer un dépôt sur github
    2. cloner le dépôt distant github dans un nouveau répertoire local: git clone username@host:/path/to/repository
      [sous GitHub la commande exacte est indiquée dans le bouton vert “clone or download”]
  • Vous pouvez travailler sur les fichiers contenus dans /path/to/repository, le workflow de base est alors (en ce plaçant dans /path/to/repository):
    1. ajouter des fichiers modifiés localement: git add <fichiers>
    2. valider ces modifications locales :git commit -m "un message ici"
    3. valider ces changements sur le dépôt distant (quand cela est nécessaire): git push

3. Alternative à Anaconda sur Mac OS X

Il existe plusieurs possibilités pour installer/utiliser des paquets, dont Python, sous OS X. Il est préférable de ne pas interférer avec l’installation faite par OS X et de faire appel au gestionnaire de paquets libres comme MacPorts [w] (il existe aussi Homebrew et Fink). Les paquets (ports) sont alors placés dans /opt/local/ voir ce guide ou ce kit de départ.

L’installation de MacPorts est expliquée dans la partie “install” du site voir aussi ce guide. Il faut d’abord installer Xcode qui est un environnement de développement pour OS X et iOS, il contient notamment des compilateurs.

$ sudo port -v selfupdate

Voir ici les tâches usuelles:

port install <package> # installe le port
port uninstall <package> # dé-installe le port
port installed # liste les ports installés
port search <exp. régulière> # liste tous les ports correspondant à l'exp. régulière
port info <package> # information sur le port
port list # liste les dernières versions de tous les ports

On peut lister les paquets contenant le mot clef “Python”:

$ port search python

Installer Python 3.6:
$ sudo port install python36
---> Computing dependencies for python36
...
---> No broken files found.
$ type python3.6
python3.6 is /opt/local/bin/python3.6

puis, pour en faire le pyhton par défaut:

sudo port select --set python python36

Lister les différentes version de Python (dont celles du système):

$ port select --list python