1 - Python et ses modules – Un ensemble pour la programmation scientifique (a quick
tour)
1.1 - Pourquoi Python ? Avantage et inconvénients
De façon générale en tant que scientifique nous produisons, manipulons ou transformons des données
numériques. Nous utilisons des outils de visualisations pour interpréter ces données ou pour
communiquer ces résultats à la communauté scientifique. Pour ce faire, nous avons recours aux
langages compilés (C, fortran …), aux langages de script (IDL, Perl, Matlab …) et/ou aux outils
dédiés à la visualisations ( gnuplot, xmgrace, supermongo, Igor …). Ces outils présentent des
avantages spécifiques à leur domaine d'application, bénéficiant de décades de développements de
librairies et optimisations. Cependant nous pouvons rencontrer certaines limitations qui peuvent nous
pousser vers d'autres solutions. L'aspect financier en est un, beaucoup de nos outils ne sont pas libres
et nous sommes contraints à l'achat de licences que nous devons renouveler pour obtenir le
logiciel/compilateur ou ses extensions/mises à jour. Les développements et extensions sont parfois
lentes à apparaître car ne elles ne sont distribuées que lors d'une version ultérieurs. L'incompatibilité
entre versions successives peuvent rendre obsolètes tous les scripts, programmes ou données réalisés
avec des versions précédentes (ex. librairie hdf5 1.6 vs 1.8 sous idl). Les langages compilés ou de
script peuvent présenter une certaine complexité de syntaxe difficile à apprendre.
Pourquoi Python ?
•C'est un langage dont la syntaxe est simple, intuitive et très facilement accessible. De plus la
syntaxe compacte mais explicite rend les codes très lisibles et facilite la maintenance et les extensions.
•C'est un langage dont les sources sont libres
•Python possède une communauté très diversifiée et très active générant un très grand nombre
de bibliothèques disponibles dans des domaines variés.
•On peut interfacer d'autre langages (C, fortran, java …) avec Python
•Il existe de nombreux d'outils de développement associés à Python pour la documentation
(sphinx) ou pour la génération de tests automatiques par exemple..
L'un des inconvénients semble peut être venir de la multitude et de l'indépendance des différents
modules, nécessitant des installations multiples pas forcément simples en fonction des
environnements. On peut ainsi se retrouver avec un environnement Python différent de celui sur lequel
est développé une application ou un tutorial et rencontrer ainsi des difficultés.
1.2 - Quelle Version ?
En ce qui concerne la version, il y a actuellement 2 branches principales de Python. La version 2.7 et
la version 3.xx . Reportez vous à la page suivante (http://wiki.Python.org/moin/Python2orPython3)
pour plus d'informations. En ce qui nous concerne nous utiliserons la version 2.x (celle installée par
défaut sur les machines).
1.3 - Quel environnement ?
Python est déjà présent en standard dans nombre de distributions de Linux pour les installations par
défaut. Pour les versions système Mac OS X 10.2 ou plus récentes, Python est aussi présent. Sous
Windows il est nécessaire de télécharger une distribution de Python. Une présentation de quelques
solutions d'installation testées sont présentées ci-dessous. Cette liste n'est pas exhaustive et ne
s'applique qu'aux configurations testées. Il est possible de rechercher sur tous les forums les
différentes solutions propres à votre cas particulier.
Franck Delahaye - Observatoire de Paris
3