ENSAM Bordeaux juin 2016 Calcul Scientifique avec 3 Introduction - Prise en main Jean-Luc Charles - Éric Ducasse Arts & Métiers ParisTech, I2M
"la programmation doit être un plaisir...", G. van Rossum Langage de programmation proposé dans les années 90 par Guido van Rossum qui a choisi le nom Python en hommage à la série Monty Python. Un langage interprété, puissant, compact, visuel. Multi paradigmes, supportant les principaux styles de programmation : impératif, procédural, orienté objet... Multi plateformes : GNU/Linux, Mac OS X, Windows... Libre et gratuit : logiciel Open Source (www.opensource.org) distribué sous la licence PSF (Python Software Foundation) compatible avec la GPL (Gnu Public Licence). 2 / 24
Très polyvalent, grâce à de nombreux modules couvrant des domaines très variés : numpy algèbre linéaire, matrices, vecteurs, systèmes linéaires... scipy probalilité/statistiques, FFT 1D, 2D..., filtrage numérique, images ; matplotlib tracé de courbes (look & feel MatLab ) ; os manipulation des répertoires et des fichiers... Disposant d une communauté d utilisateurs très active. Simple à prendre en main ; de plus en plus utilisé en recherche, enseignement, industrie... Enseigné au lycée (programme 2009, classe de seconde), au programme des classes prépa (depuis la rentrée 2013). Utilisé par des acteurs majeurs du monde industriel : NASA, Google, CEA, AirBus, YouTube... 3 / 24
Python est un langage interprété Les 2 outils pour travailler avec Python : Interpréteur (console Python) et Éditeur. 4 / 24
Documentation officielle : site Python.org docs.python.org 5 / 24
Interpréteur interactif amélioré Plus d interactivité avec les modules de tracés de courbes (pylab, pylab...) et le système d exploitation (%magic). Cellules question/réponse numérotées... (In[n] / Out[n]). Facilités pour charger le module pylab : graphiques, tracés de courbes interactifs... et bien plus encore! Facilités pour le calcul parallélisé ipyparallel.readthedocs.io/en/latest. Propose la déclinaison notebook : comme un notebook Mathematica, mais avec un "Python dans le moteur"! 6 / 24
Distributions du site Python.org Ne propose "que" : interpréteur Python + modules de la standard library pour les OS GNU/Linux, Mac Os X et Windows. www.python.org/downloads 7 / 24
Distributions du site Python.org www.python.org/downloads Le travail avec Python (calcul scientifique...) nécessite l installation de modules supplémentaires! Windows/Mac OS X : l installation de paquets supplémentaires peut paraître difficile pour des utilisateurs habitués aux interfaces graphiques. 8 / 24
Ajout de modules pypi.python.org Le site Pypi.python.org est le dépôt officiel des modules Python : GNU/Linux et Mac OS X dans un terminal, taper la commande : pip install nom_du_module, pour une installation utilisateur sudo pip install nom_du_module, pour une installation administrateur en fonction de votre installation, utiliser la commande pip ou pip3. Windows, dans une concole cmd.exe, Anaconda prompt... pip install nom_du_module 9 / 24
Distributions Python L utilisation d une distribution (Python(x,y), WinPython, Canopy, Anaconda...) facilite le travail d installation des modules : 10 / 24
Installation de Python pour GNU/Linux Le principe est très simple : tous les modules Python sont disponibles dans les distributions GNU/Linux il suffit d installer les paquets Python en fonction des besoins - avec l installeur graphique (logithèque, muon, synaptic...), - ou avec la ligne de commande (adept, apt-get, yum...) de votre distribution. matplotlib pour Python 3.x n est disponible que pour x 3 version de GNU/Linux récentes : Ubuntu 14.04 (Trusty), Debian testing (Jessie)... versions antérieures : utiliser Anaconda qui installe Python 3.x, x>3. Paquets Python 2.7 (Ubuntu 12.04 Precise, Debian Wheezy...) python2.7 python-numpy python-scipy python-matplotlib python-qt4... Paquets Python 3.x (Ubuntu 14.04 Trusty, Debian Jessie...) python3 python3-numpy python3-scipy python3-matplotlib python3-pyqt4... 11 / 24
Installation de Python pour Windows La distribution de base proposée sur Python.org n inclut pas les modules numpy, scipy... L installation à la main de certains modules peut être difficile pour des utilisateurs débutants. Le plus simple : utiliser un logiciel installateur, qui se charge d installer les nombreux modules utiles au calcul scientifique ainsi que les EDI les plus connus (IDLE, Spyder...). Installateurs libres Python scientifique Python(x,y), ne propose à ce jour que Python 2.7 WinPython scientifique WinPython, propose Python 2.7 et 3.5 Installateurs propriétaires (gratuits) proposent des versions académiques et/ou gratuites Continuum Analytics : Anaconda, propose Python 2.7 et 3.5 Enthought : Canopy, ne propose à ce jour que Python 2.7 La coexistence de plusieurs versions (distributions) de Python est possible, mais doit être traitée avec soin... 12 / 24
Installation de Python pour Mac OS X La disribution Python 2.7 installée de base avec Mac OS X sert au système d exploitation. Elle ne comprend pas les modules numpy, scipy, matplolib... L installation à la main de certains modules peut paraître difficile pour des utilisateurs débutants. Le plus simple : utiliser un logiciel installateur, qui se charge d installer les nombreux modules utiles au calcul scientifique ainsi que les EDI les plus connus (IDLE, Spyder...). Installateurs propriétaires gratuits proposent des versions académiques et/ou gratuites Continuum Analytics : Anaconda propose Python 2.7 et 3.5 Enthought : Canopy, ne propose à ce jour que Python 2.7 13 / 24
IPython installation GNU/Linux Installer le paquet ipython de votre distribution. Pour Ubuntu ou Debian : installer ipython3 (Python3.x), ou ipython (Python 2.7). Terminal : taper la commande ipython3 (ou ipython) Mac OS X Inclus dans les Installateurs (Canopy, Anaconda...) Terminal : taper la commande ipython. Windows Inclus dans les installateurs (Python(x,y), WinPython, Anaconda...) Invite de commande : taper la commande ipython (ou ipython3) Python(x,y), WinPython, Anaconda... proposent plusieurs types de consoles ipython. 14 / 24
Console Python L outil le plus simple pour travailler avec Python : Console exécutant l interpréteur Python en "mode caractère". GNU/Linux Terminal : taper la commande python (ou python3) Mac OS X Terminal : taper la commande python (ou python3) Windows Invite de commande : taper la commande python (ou python3) PythonXY : propose plusieurs types de consoles... WinPython : propose plusieurs types de consoles... Anaconda : propose le fenêtre de commandes anaconda et plusieurs types de consoles... 15 / 24
GNU/Linux, Mac OS X et Windows7 : Console Python dans un terminal 16 / 24
GNU/Linux, Mac OS X et Windows7 : Console IPython 17 / 24
IDLE IDE (Integrated Development Environment) Présent dans toutes les distributions Python, très utile pour des essais rapides. (mais peut poser des problèmes avec Mac OS X -> Canopy...) Le plus simple des IDE, avec colorisation syntaxique (éditeur et interpréteur). Les programmes édités sont exécutés avec la touche F5. 18 / 24
IDLEX (IDLE extensions) http://idlex.sourceforge.net/ Numérotation des lignes, ouverture de plusieurs fichiers dans des onglets. Choix de l interpréteur Python ou IPython. Gestion native de l historique des commandes avec le curseur. Gestion du Zoom par CTRL + molette... 19 / 24
Spyder github.com/spyder-ide/spyder Un MatLab-like, écrit en Python! Très complet, convivial, efficace... Propose beaucoup de goodies : object inspector, help, debugger, Qt Designer... Propose un workspace analogue à celui de Matlab pour visualiser les données. Propose de l aide interactive. Fournit les 2 outils fondamentaux : éditeur / interpréteur Python (ou IPython). Compatible Python 3 dans les distributions WinPython et Anaconda. GNU/Linux Python 2.7 : installé avec les paquets debian Python 3.x : à installer avec sudo pip3 install spyder 20 / 24
Spyder 21 / 24
Jupyter Notebook jupyter.org Se lance par la commande "jupyter notebook" ou avec un menu dédié. Un notebook se présente comme un onglet d un navigateur HTML, qui dialogue avec un noyau IPython. Les cellules d entrée acceptent le langage à balise Markdown (support de L A TEX). [Shift]+[Entrée] exécute la cellule avec IPython. Les fichiers Notebook ont l extension.ipynb. Installation GNU/Linux Module Python 2.7 à installer avec la commande sudo pip install jupyter Module Python 3.x à installer avec la commande sudo pip3 install jupyter Installation Mac Os X et Windows inclus dans les installateurs Python(x,y), WinPython, Canopy, Anaconda... 22 / 24
nbviewer.jupyter.org 23 / 24
Références bibliographiques http://docs.python.org/index.html https://openclassrooms.com/courses/apprenez-a-programmer-en-python Apprenez à programmer en Python Vincent Le Goff Simple IT éd. (Le livre du zéro) ISBN 979-10-90085-03-9 25 Apprendre à programmer avec Python 3 Gérard Swinnen Télécharger le PDF 24 / 24
jean-luc.charles@ensam.eu eric.ducasse@ensam.eu