Table des matières
Python : quelques références, trucs et astuces
: à ajouter :
Python est un langage de programmation de haut niveau, libre, polyvalent, facilement accessible aux débutants, mais permettant aussi de réaliser des applications sophistiquées et professionnelles. Certains l'utilisent simplement comme langage de script, pour automatiser et faciliter différentes tâches informatiques.
Cette page est destinée à en faciliter l'apprentissage. Pour une introduction plus complète, cf. la page Python sur le site de Wikipedia en français ou la page en anglais !
La branche actuelle de Python est celle de Python 3, en version 3.11 (décembre 2022) qui apporte de nombreuses amélioration mais n'est pas rétro-compatible avec la branche antérieure 2.7.x, qui n'est plus supportée, bien que certaines librairies logicielles n'aient pas fait l'objet d'une conversion vers la branche 3 (il est préférable alors d'éviter l'utilisation de ces programmes).
- Pourquoi apprendre à programmer en Python ?
-
- cf. aussi l'article The 9 Best Programming Languages to Learn in 2021 ainsi que le livre Python in Education (Teach, Learn, Program), par Nicholas H. Tollervey.
Références recommandées pour débutants
Si vous n'avez vraiment encore aucune idée de ce qu'est la programmation, passez une heure amusante à apprendre les rudiments de la programmation avec scratch, et plus si affinité !
Scratch utilise un environnement visuel et le glisser-déposer, ce qui facilite les premiers pas en programmation (cf. cette vidéo).
Il existe d'autres langages de programmation visuels orientés vers l'apprentissage de la programmation : Alice, blockly, snap!, Squeak, RoboMind,…
EduBlocks permet la transition de l'apprentissage par blocs via Scratch vers la programmation en Python (GitHub EduBlocks).
- Installer Python : Python.org, le site où télécharger le logiciel libre, en version de base. Des versions existent pour Windows, Mac OS X et Linux, mais dans ce dernier cas, il est préférable d'opter pour la version proposée par votre distribution Linux particulière. Soyez vigilant aussi dans le choix entre les versions 32 bits et 64 bits !
- la branche 2 n'est plus supportée depuis janvier 2020 ! (à éviter absolument !!)
- la branche 3 : version 3.11.1 en décembre 2022. Cf. la documentation :
-
- Le tutoriel Python (site officiel)
Essayer, débuter, apprendre les bases ...
Évitez d'utiliser des documents trop anciens, surtout s'ils n'ont pas été adaptés pour la branche Python 3 !
- futurecoder : cours gratuit et interactif permettant aux personnes d'apprendre elles-mêmes la programmation en Python, en particulier aux débutants complets en programmation. Il est soigneusement conçu pour réduire la frustration et guider l'utilisateur tout en veillant à ce qu'il apprenne à résoudre les problèmes. L'objectif est de permettre à un maximum de personnes d'apprendre la programmation.
- Codecademy : Cours introductifs,…
- repl.it : site web permettant d'explorer interactivement des langages de programmation dont Python, sans rien installer !
- Online Python tutor : apprendre et pratiquer la programmation Python dans un navigateur. Les exécutions sont décomposées et visualisées pas à pas !
- Thonny, IDE Python conçu et idéal pour les débutant dans ce langage. Il est multi-plateforme, dispose d'un debugger intégré, d'un évaluateur d'expressions à l'exécution, la complétion de code, etc …
- Autres IDE web, en ligne :
- skulpt, implémentation de python dans un navigateur
- LearnPython.org : tutoriel interactif Python avec exécution de code (en anglais, avec des publicités)
- Programmer's Learning Machine, un programme qui vous aide à apprendre les bases de la programmation. Nécessite l'installation d'une machine java. N.B. : pensez à configurer l'interface en français et le codage en langage Python.
- Python 3 Tutorial, site interactif, de SoloLearn, avec utilisation de Python dans le navigateur
- Programming in Python, algorithmes et programmes de base, avec visualisation de leur exécution
- Adaptive Python, cours adaptatif sur stepik.org (résolution de problèmes et vérification)
- An Introduction to Interactive Programming in Python (Beginners) (cours en ligne Coursera)
- Introduction to Computer Science and Programming Using Python, cours en ligne sur edX
- la page Python for Non-Programmers sur le site officiel Python.org
- Applications mobiles de DataCamp (Cours introductifs sur Python, R,…)
- 30 Days Of Python 30 days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days
- Free Python Programming Course for beginners, Beau Carnes, 2022 (vidéos Youtube de FreeCodeCamp.org)
Livres, manuels ou exerciseurs de niveau intermédiaire :
- https://openclassrooms.com/fr/search?page=1&query=python, tutoriels sur openclassrooms
- Le livre “apprendre à programmer avec Python”, de Gérard Swinnen (librement téléchargeable, et disponible en librairie, chez l'éditeur Eyrolles, ISBN 978-2-212-12474-3). Une version est également disponible sur le site de wikibooks.org : http://fr.wikibooks.org/wiki/Apprendre_à_programmer_avec_Python (voir aussi http://fr.wikibooks.org/wiki/Programmation_Python)
- Livre librement téléchargeable “Think Python, How to Think Like a Computer Scientist” de Allen B. Downey (Cambridge University Press)
- Python 101, Michael Driscoll (téléchargement gratuit)
- Invent with Python, 4 livres :
- Learn how to program ! → Automate the Boring Stuff with Python
- Develop video games ! → Invent Your Own Computer Games with Python
- Make games with graphics ! → Making Games with Python & Pygame
- Encrypt messages and hack ciphers ! → Hacking Secret Ciphers with Python
Références pour une utilisation (scientifique) plus avancée
Voir cette présentation de l'écosystème Python scientifique, par Gaël Pegliasco (10/11/2016)
Distributions et installation :
- Anaconda, distribution python libre et multiplateforme (Windows, GNU/Linux, Mac OS), avec le système de Notebook web Jupyter en prime… Si les conditions sont limitées (materiel, réseau,…), il peut être plus intéressant d'installer la version miniconda qui permet de compléter par la suite et à la demande l'installation de librairies. → Cf. la page dédiée sur Anaconda
- Python(x,y), distribution libre orientée scientifique et calcul numérique, comprenant les interfaces graphiques Qt et l'environnement de développement libre Eclipse (environ 850 MB pour la version Windows, janvier 2016).
- La distribution Enthought Canopy for Academic Use, nécessite un email d'une institution académique reconnue pour l'installation (Windows, Mac OS X ou GNU-Linux. Il existe aussi une version gratuite Canopy Express. Ces distributions incluent beaucoup d'outils scientifiques, et l'interface wxPython.
- Enthought Python webinars : http://enthought.com/training/webinars.php
- Méthode “manuelle” sous Windows : installer le Python de base, PyCharm et ensuite installer ou mettre à jour les librairies via le dépôt de librairies PyPI
- Sous Mac OS X : tutoriel "installing scientific Python on Mac OS X"
- Active Python community edition : une autre distribution Python
- cf. la page de téléchargement, en version 2 ou 3, 32 ou 64 bits, Windows, Mac OS X ou GNU-Linux
- Sous une distribution GNU-Linux, on peut aussi utiliser un outil standard d'installation pour configurer son environnement Python 1), et pareillement avec python3 : 2). Les librairies supplémentaires sont facilement ajoutées dans l'espace utilisateur par les commandes “pip install libraryname” ou “pip3 install libraryname” (utiliser éventuellement le paramètre “–upgrade”).
- Version portable de Python : http://www.portablepython.com/site/home/
- Pyzo, environnement basé sur Python 3 et des librairies scientifiques
- Python et outils associés - Installation et utilisation, par Jean-Daniel Bonjour (EPFL-ENAC-IT) ( : à suivre pour sélection des recommandations)
- Python sur un smartphone ou une tablette Android :
- Cf. cette réf
- How to Install Python and Jupyter Notebook onto an Android Device - Increase your productivity when you’re waiting in a queue or are on the go Angelica Lo Duca, Medium, 08/06/2021
- Python sur un iPhone ou iPad (Apple iOS) :
- Pyto (3-day Trial $0.00, Full Version $14.99, Lite Version $7.99)
Outils web interactifs
- Skulpt, implémentation en javascript de Python 2, permettant de l'utiliser dans un navigateur, côté client. Utilisé dans des cours.
- Trinket, permet l'inclusion de code et de son exécution dans n'importe quel navigateur
- repl.it : site web permettant d'explorer interactivement des langages de programmation dont Python, sans rien installer !
- DataJoy : environnement complet pour programmer en Python dans un navigateur
Éditeurs
-
- Idle est l'éditeur standard (Idle3 pour la version Python3)
- SciTE, un éditeur de texte gérant la syntaxe Python, permettant des impressions de qualité
- The Eric Python IDE (eric4 basé sur Qt4/Python 2 et eric5 basé sur Qt4/Python 3)
- Spyder (éditeur proposé avec la distribution Anaconda)
- Thonny, Python IDE for beginners
-
- LiClipse (plus léger, non-libre)
- Pycharm, en version communautaire libre (et en version professionnelle non libre)
- JetBrains propose également une version PyCharm Educational Edition (cf aussi ici et ici, sous une licence spécifique (donc non libre)
- Komodo IDE (non libre)
- PyScripter (spécifique Windows)
- comparatifs
Livres
- Dive Into Python 3, livre sous licence libre dans la version revue pour la nouvelle branche Python 3 (dont la traduction en français n'est malheureusement que commencée). En version 2 : Dive Into Python
- Livre “A Primer on Scientific Programming with Python”, de Hans Petter Langtangen, Springer 2009
- Livre “Python Scripting for Computational Science”, de Hans Petter Langtangen 3rd edition, Springer 2009 (voir le site internet http://folk.uio.no/hpl/scripting/ pour les exemples et références)
- Livre Python For Scientists And Engineers, gratuit et en ligne, avec code sous licence libre (MIT)
- Livre “Programmation Python - Syntaxe, conception et optimisation”, de Tarek Ziadé, Eyrolles, 2008.
- “Guide de survie Python”, de Brad Dailey, campus press, 2007.
- An Introduction to Python - The Python Tutorial (version 2.5), by Guido van Rossum and Fred L. Drake, Jr.
- Python Scientific lecture notes : Teaching material on the scientific Python ecosystem, a quick introduction to central tools and techniques
- Python en Prépa », co-écrit par des étudiants et leur enseignant, ISEN Brest
- Learning Python de Mark Mruss : pour les moins pressés…
- Learn Python The Hard Way, 2nd Edition, free HTML version of the book
- Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction To Programming Eric Matthes, 2019 ISBN: 978-1593279288 + pdf édition de 2015
- Autres livres de références :
- Beginning Python, Peter Norton et al., Wiley 2005
- Beginning Python - From Novice to Professional Magnus, Lie Hetland, Apress 2005.
- Python Programming: An Introduction to Computer Science - John M. Zelle, 2004
- Head First Python de Paul Barry, O'Reilly Media
- Hello! Python de Anthony Briggs
- Think Python - How to Think Like a Computer Scientist de Allen B. Downey (sous licence libre)
- Learning Python de Mark Lutz, David Ascher, O'Reilly Media, 1999
- Functional Programming in Python, David Mertz, O'Reilly, June 2015
- Python for the life science, à paraître (2016)
- Doing Math with Python, Use Programming to Explore Algebra, Statistics, Calculus, and More! By Amit Saha
- Python 101 & Python 201, par Michael Driscoll
- livres de Nicolas Rougier : https://github.com/rougier
- From Python to Numpy, 2017 - Nicolas P. Rougier
- A Student's Guide to Python for Physical Modeling: Second Edition Jesse M. Kinder and Philip Nelson, Princeton University Press, 2021, ISBN: 9780691223650
- Livres sur wikibooks :
- Livres scientifiques basés sur Python :
- : 4 Python Books I Read as a Self-Taught Programmer - Books to learn Python to create games, websites, automate tasks, and more Frank Andrade, Medium, 28/04/2021
Tutoriels, cours
- http://python.developpez.com/ avec une section contenant des exemples catégorisés et des tutoriels (en français)
- Cours
- Cours de Python (les bases), Université Paris 7 / UFR Biochimie (Patrick Fuchs)
- “Introduction à la physique numérique” de Normand Mousseau, Montréal
- Page Python à l'IUT d'Orsay notes de cours, exercices (avec corrigés), TP, conseils pour l'installation de Python…
- Cours Programmation Python de Laurent Pointal
- Initiation à Python par l'exemple, de Raphael MARVIE (Univ. Lille I), + fichier pdf
- Informatique et Sciences du Numérique, Julien Lefèvre, Université d’Aix-Marseille (nombreux exemples/applications en Python)
- Cours d'introduction au langage de programmation Python, de Fabrice Sincère, pour les terminales S en spécialité informatique (yc exercices et QCM)
- Programmation Python - Une brève introduction, par Jean-Daniel Bonjour (EPFL-ENAC-IT)
- Python Course, tutoriel en anglais sur Python 2, Python 3, Tkinter et quelques sujets avancés
- Learn to Program: The Fundamentals (Python) (Intermediate) (cours en ligne Coursera)
- Learn to Program: Crafting Quality Code (Python) (Intermediate) (cours en ligne Coursera)
- Learn Python in 10 minutes, pour les pressés…
- NanoPy is a series of Python nano-tutorials and programming tips
- Google's Python Class : free class for people with a little bit of programming experience who want to learn Python…
- A Python Book: Beginning Python, Advanced Python, and Python Exercises, Dave Kuhlman (Open Source MIT License)
- Tutoriels ciblés :
- Python Regular Expressions — cheat sheet - Many code examples + useful tips Valeria Aynbinder, Medium, 17/03/2022
- Computational Statistics in Python (y compris quelques informations plus générales)
- Python tutorial on basics, code school (vidéos)
- Mooc sur Fun-MOOC, par l'INRIA :
- Learn Python 3, GitHub repository containing a collection of materials for teaching/learning Python 3
- Python Tutorial in 30 Minutes (Crash Course for Absolute Beginners)
Conférences
- AFPY - Association Francophone PYthon, organisateur d'une conférence annuelle :
- pycon.org : la plupart des conférences Python
- pyvideo.org : vidéos liées à Python (conférences,…)
- Conférences SciPy (internationale)
- Conférences EuroScipy (européenne)
Ressources (codes sources, tutoriels, documentation, livres ...)
- Wiki officiel sur python.org
- FAQ officielle sur python.org
- Python 3 Cheat Sheet, Mémento Bases Python 3, de Laurent Pointal
- Python 3.2 Reference Card, Abrégé Dense Python 3.2 du même auteur (Laurent Pointal)
- Python Quick Reference Card, la syntaxe et les règles, le tout sur 9 feuilles recto-verso en couleur ! Attention aux marges lors de l'impression ! Toujours du même auteur (Laurent Pointal)
- DataCamp matplotlib cheat sheet, et autres cheat sheets
- PythonFrance.com (nombreux codes sources disponibles, en français)
- Wiki Python FR avec de nombreuses informations pour débutant ou non, des exemples de code,… (en français)
- Software Carpentry, site principalement dédié à la programmation Python pour scientifiques
- A byte of Python, un livre en ligne pour débuter (versions Python 2.x et Python 3), et sa traduction en français
- Python Tutorials, une liste de plus de 300 documents !!!
- ONLamp.com Python devcenter, de O'Reilly
- Vaults of Parnassus : Python Resources
- Python Quick Reference by Richard Gruet
- Python Basics par Andrew Dalke (Dalke Scientific Software)
- Effbot.org, avec de nombreux articles et autres ressources sur Python
- Introduction to Programming using Python - Programming Course for Biologists at the Pasteur Institute
- Beginning Python Programming for Aspiring Web Developers (tutorial sous licence GNU Documentation)
- The Top 7 Best Github Repositories to Learn Python - Popular repositories to either learn the basics or develop mastery of Python Byron Dolon, Medium, aug 26, 2020
- Listes de diffusion, forums,…
- EDU-SIG : Python in Education (nombreux liens)
- Exemples de code python
- literateprograms.org : quelques dizaines de programmes simples commentés, en python
- Pypedia : codes sélectionnés et commentés
- Python for Beginners : codes élémentaires, exemples et tutoriels
- java2s.com/Code/Python : nombreux petits codes catalogués, illustrés (mais peu expliqués)
-
- voir la sélection de codes sources ActiveState sur ce site
- nullege : moteur de recherche de codes sources Python
- Trinket : écrire, exécuter, partager du code via un navigateur web
- Pages de liens
- Liens Python de Laurent Pointal
- Périodiques Python :
- Python magazine : http://pymag.phparch.com/
- Python papers anthology : http://pythonpapers.org/
- radio free python : podcasts de diffusion libre sur le langage de programmation Python et sa communauté
- Python-FR.org : liens (en français)
- Python blanc bleu belge : association dont le but est de faire découvrir le langage Python et la plate-forme de développement Zope en Francophonie
- Société de service Python assurant formation et consultance :
- Articles de Linux Magazine ou Linux Pratique ou Linux Essential (Editions Diamond), sur le site UnixGarden
- Numéros spéciaux de magazines, consacrés à Python
- GNU/Linux Magazine HS 73, LE GUIDE POUR DEVENIR UN VÉRITABLE EXPERT DU LANGAGE ! (Modules généraux - Visualisation des données - Modules spécifiques - Accélération des traitements)
- http://zetcode.com/ avec quelques tutoriels Python, incluant des utilisations de librairies
- Articles sur Python dans le magazine Full Circle :
- http://fullcirclemagazine.org/python-special-edition-1/ - Python Special Edition 01, reprint of Parts 01 – 08
- http://fullcirclemagazine.org/python-special-edition-2/ - Python Special Edition 02, reprint of Parts 09 – 16
- http://fullcirclemagazine.org/2012/01/21/python-special-edition-volume-03/ - Python Special Edition 03, reprint of Parts 17 – 21
- http://fullcirclemagazine.org/2012/04/13/python-special-edition-volume-04/ - Python Special Edition 03, reprint of Parts 22 – 26
- Podcast Python :
- Podcast.__init_ A podcast about Python and the people who make it great
Code & qualité
- http://www.python.org/dev/peps/pep-0008/ Conventions de style pour l'écriture de programmes (connues aussi comme pep8 !)
-
- …
- Pylint, outil permettant d'analyser la qualité d'écriture d'un code Python
- PyChecker, outil permettant de déceler les bugs dans un code Python
- Testing
- Documentation
Applications générales en Science
- IPython : environnement de calculs interactifs en Python
- Sage, logiciel mathématique libre combinant de nombreux composants open-source dans un interface basé sur Python
- Calcul mathématique avec Sage, livre sous licence libre
- spyder : environnement de développement scientifique
- Librairies
- matplotlib librairie graphique scientifique, exemples (fichier .zip), tutorial,…
- Basemap : librairie de création de cartes 2D
- prettyplotlib, améliorations visuelles de matplotlib
- Seaborn, librairie de visualisation basée sur Matplotlib
- PyX : pour générer des graphiques imprimables au format eps ou pdf
- NumPy : librairie numérique fondamentale. Pour la documentation récente, voir le site du Guide to Numpy (lien pdf).
- Glumpy = OpenGL + NumPy : visualisation rapide de tableaux NumPy
- SciPy (voir aussi les exemples présentés à la page http://www.scipy.org/Cookbook). Voir aussi les Python Scientific Lecture Notes
- Theano, librairie pour définir, optimiser et évaluer efficacement des expressions mathématiques impliquant des tableaux multi-dimensionnels
- Gnuplot.py : librairie permettant l'utilisation de gnuplot. Numpy, scipy doivent être installés auparavant.
- PyDSTool pour l'étude de systèmes dynamiques
-
- How to Use ggplot2 in Python (librairie plotnine)
-
- pylab interface to matplotlib ?
- PyIMSL : permet d'accéder aux algorithmes mathématiques et statistiques de la librairie numérique IMSL C.
- PyMinuit : minimisations de fonctions avec Minuit
- Librairies de machine learning
- Algèbre tensorielle :
- Statistiques
- scikits.statsmodels : outils statistiques complémentaires à scipy
- Pandas, Python Data Analysis Library
- learn pandas, leçons au format ipynb (IPython Notebook)
- Références spécifiques concernant R et Python
- PyMC, librairie pour l'analyse Bayésienne. Cf. le livre interactif "Bayesian Methods for Hackers"
- Orange, data mining
- NetworkX, grands réseaux
- Tulip visualisations de grands graphes
- Grands volumes de données, ou nombre de fichiers, tables,…
- ROOT CERN data processing framework (including Python stuff)
- SymPy : librairie en mathématique symbolique
- Mathics, free, light-weight alternative to Mathematica
- Images :
- PIL : Python Imaging Library et la documentation sur effbot
- Tutoriel en français sur des bases de traitement d'images avec PIL et numpy
- Pillow, un fork pour le remplacement et l'évolution de PIL
- scikit-image : collection d'algorithmes en Python pour le traitement d'images
- scikits-learn : module d'algorithmes classiques d'apprentissage automatique
- OpenCV : Open Source Computer Vision
- SimpleCV : interface simplifié à OpenCV : “computer vision made easy”
- pymaging (pure python)
- GlowScript : glowscript.org reprend les objectifs de Vpython, (sous Python 3), permet la programmation d'animations 3D simples (balles, rebonds, graphes,…).
- A Physicist’s Guide to Functions in Python, Rhett Allain, Medium, 17/12/2020
- Examples of Stoke’s Theorem and the Divergence Theorem Using Python Rhett Allain, Medium, 01/03/2022
- Visual Python demos (ne fonctionnent pas toutes)
- collision.py et répertoires parents
- Visvis : approche orientée objet de la visualisation
- Pyzo : environnement d'analyse de données et de visualisation
- graphiques interactifs
- Chaco : librairie pour des graphiques interactifs
- Pygal : librairie de graphiques dynamiques en SVG. Testable en ligne via Pygal cabaret
- Bokeh, librairie de visualisations interactives dans des navigateurs
- Euroscipy : Conférence annuelle européenne pour les scientifiques utilisant Python
- numfocus.org : promotion de l'enseignement et de l'utilisation de logiciels libres en science (support fortement orienté sur des projets autour de Python)
Applications en Chimie
- MMTK, molecular modeling toolkit (version Windows - attendre version pour python 2.4 ??)
- PyDayLight
- Python est utilisé dans VMD (visual molecular dynamics)
- MGLTools : incluant PMV, Python-Based Molecular Viewing environment (+ http://www.scripps.edu/~sanner/ : ancienne page)
- Chimera, a highly extensible, interactive molecular graphics program
- Python Macromolecular Library (mmLib), pour la manipulation de modèles structuraux de macromolécules
- PyQuante : suite de programmes pour la chimie quantique (Linux ou Windows/CygWin)
- Accéder à Open Babel (boîte à outils de données chimiques) avec Python, Pybel
- nMOLDYN (analyse de données de simulations de dynamique moléculaire), utilisant MMTK
- Frowns, chemoinformatics system
- CCTBX, Computational Crystallography Toolbox : classes C liées par du code PythonÂ
-
- Sites actuels : https://gitorious.org/bkchem & https://gitorious.org/oasa
- Computational Methods for Nonlinear Systems, cours de Sethna & Myers
- ASCEND is a modelling environment and solver for large or small systems of non-linear equations, for use in engineering, thermodynamics, chemistry, physics, mathematics and biology
- gElemental, tableau périodique sous GNOME (Linux)
- MDAnalysis, outils pour l'analyse de trajectoires issues de programmes de dynamique moléculaire comme CHARMM, NAMD et LAMMPS
- PyMOL Molecular Graphics System (OpenSource), + offres commerciales, version Educational-Use-Only PyMOL
- pymolwiki, guide pour installer et utiliser pymol
- FragBuilder, structure de peptides par chimie quantique. Cf. cet article
- GPGMP, Inchman, implementation of a spatially-resolved stochastic simulation algorithm on general-purpose graphics processing units + exemples chimiques
- ASE, Atomistic Simulation Environment
- GPAW, code de fonctionnelle densité basé sur ASE
- Python et Gromacs (package to perform molecular dynamics) :
- Cantera : cinétique, thermodynamique, phénomènes de transport (scriptable en python)
- pyEQL, librairie pour gérer des solutions aqueuses d'électrolytes
- chemlab, librairies incluant la visualisation et la manipulation de données sur les structures chimiques
- chempy, librairie pour résoudre des problèmes de chimie physique, chimie analytique,…
- RDKit, Open source toolkit for cheminformatics, avec commandes en Python
- popmodel, to calculate population of molecules using a master equation
- chemcoord, python module for coordinates of molecules
- Uniprot, base de données sur les protéines
- ChemSpiPy pour accéder à la base de donnée ChemSpider
- chembl_webresource_client, pour accéder à la base de donnée chimiqueChEMBL
- PubChemPy, to interact with PubChem in Python
- Scoria, a lightweight python code base designed for importing, manipulating, and exporting molecular models. cf. Scoria: a Python module for manipulating 3D molecular data
- librairie Mendeleev : données sur les éléments chimiques
- cf. aussi Awesome Python Chemistry, Łukasz Mentel (aussi ici)
- Mendeleev, tableau périodique
- Chem324, Fall 2019 @ Iowa State University “Introduction to Quantum Mechanics” écrit en Jupyter + Markdown + Jupyter Book + Python codes
Autres applications spécifiques en Science
- PyNGL, un interface pour créer des graphes 2D.
- MayaVi et MayaVi2 : visualisation de données 2D/3D
- Biopython (computational molecular biology)
- KineticsKit : simulations 3D de systèmes masses-ressorts (décompresser l'archive dans le répertoire contenant les programmes à exécuter)
- PyVISA, interfaçage d'instruments scientifiques
- Presentation made easy SciPres : Scientific Presentation made easy
- GeoMod : nombreux exemples didactiques en sciences de la terre
- BioImageXD : free open source software for analysis and visualization of multidimensional biomedical images
- CAGE : cellular automata simulation engine
- Astrolib : librairie d'outils pour l'astronomie
- SimPy : simulation in Python
- PySces : simulation de systèmes cellulaires (métabolismes)
- symca : simulation symbolique avec PySces
- Graphes :
- igraph : construit et dessine des graphes (utilise PyCairo)
- Python-graph : axé sur la réprésentation
- Graphviz, seulement pour la visualisation
- GraphvizAnim, visualisations animées de graphes
- SciPy Central : bouts de code, modules et liens pour résoudre des problèmes scientifiques avec SciPy et d'autres outils liés à Python
- PyMS : outils de lecture-conversion de données spectrométriques (incluant JCAMP-DX)
- Astropy, librairie pour l'astronomie
- Particle tracking :
- Mechanics of the Cell (Maria Kilfoil, Amherst)
- FiPy, résolution d'équation aux dérivées partielles pour des problèmes de diffusion, convection,…
- DendroPy, librairie de phylogénétique
- Pylogeny, open-source Python framework for phylogenetic tree reconstruction and search space heuristics
Autres applications, librairies générales
- iMailer, pour envoyer des emails individuels avec pièces jointes
- Pygame, pour créer des jeux en Python
- Pymedia, pour gérer des fichiers audio et video
- PythonPoint, pour créer des présentations au format PDF
- PyParsing, utilisant des grammaires, mots, lexiques…
- Pygments : syntaxe colorée en Python
- Documentation :
- Sphynx : génération de documentation en python
- Outils Docutils (reStructuredText vers html, s5, XML, LaTeX, ODT)
- Cython : langage pour écrire facilement des extensions en C du langage Python
- Python et la librairie graphique 2D Cairo
- Cairo Tutorial for Python Programmers et la traduction en français sur ce site : Tutoriel Cairo pour programmeurs Python !
- pycairo et les ressources
- Unofficial Windows Binaries for Python Extension Packages, par Christoph Gohlke
- Landslide : Lightweight markup language-based html5 slideshow (presentation) generator
- Brython, une implémentation de Python 3 pour la programmation web côté client. Pour remplacer du javascript.
- Web scrapping, extraction de pages web
Graphical User Interfaces
cf.
- 7 Must-Try GUI Libraries in Python Abhay Parashar, Medium, Apr, 2021, Better Programming
- Python GUI Development Using PySide6 and Qt FreeCodeCamp, Beau Carnes, 07/12/2022, tutorial
- TKinter (pour mémoire, car inclu dans la distribution standard de Python)
- Tkinter reference: a GUI for Python (online or pdf) by John W. Shipman)
- An Introduction to Tkinter, de Fredrik Lundh (tutoriel Tk)
- Python megawidgets, nombreuses extensions de Tkinter (à télécharger et installer)
- Tkinter tutorial, sur python-course.eu
- wx
- wxPython, pour créer des programmes avec un interface graphique
- BOA Constructor, pour construire des interfaces wx
- Qt :
- GTK+
- Glade, pour créer des interfaces utilisateurs utilisant GTK+
- DearPyGui → “Dear PyGui is a simple and powerful easy to use Python GUI framework to build GUIs using python scripts”
- Curses (text only ?)
- Interfaces simplifiés :
- https://pysimplegui.readthedocs.io/en/latest/ + PySimpleGUIWeb
- UIs in Python with PySimpleGUI - Is this the one? Keno Leon, Medium, Dec 18, 2020
- http
- Python REMote Interface library (cf. PySimpleGUIWeb)
Python & web
- PyScript : Python in the browser
- PyScript: Python in the browser. Are you a data scientist or a developer… by Sophia Yang, May, 2022, Towards Data Science
- PyScript — unleash the power of Python in your browser, A sneak peek at how to run Python from HTML code
- Introducing PyScript — How to Run Python in Your Browser - Is Python the new JavaScript now? Well, no, but you can still do cool things Dario Radečić, towardsdatascience.com, 04/05/2022
- PyScript-Use Python Code in HTML, E Senthil, Medium, 06/05/2022
- Brython : Une implémentation de Python 3 pour la programmation web côté client
- https://anvil.works/ Full stack web apps with nothing but Python
Librairies particulières
De manières générales, les librairies qui ne sont pas dans la version standard de Python seront placées (par des programmes de “setup” ou manuellement) dans le sous-répertoire .\Libsite-packages\ de Python.
- Python Cheese Shop, un dépôt de librairies et programmes en Python
- xturtle, module graphique “tortue” destiné à remplacer la librairie standard turtle
- PyPDF, pour des manipulations en lecture et écriture de fichiers PDF
- PyPDF2 fork variante de PyPDF
- ReportLab's Open Source Libraries, pour créer des fichiers pdf
- xlrd, pour lire des données de feuilles Excel
- Frameworks pour la création de sites web (cf. ce comparatif)
- django (connu, puissant, suivi,…)
- Flask : microframework (cf. cette video)
- Moya (exemple : création d'un wiki)
- eyeD3, librairie de gestion de tags ID3 de fichiers mp3
- pyxll : pour écrire des extensions de Microsoft Excel en Python (non-libre, gratuit pour des utilisations non-commerciales et soumis à une EULA)
- kartograph.py : générateur de carte SVG de haute qualité
- Camelot : pour construire des applications commerciales
- PyMT : librairie pour des développements multitouch
- Interface en ligne de commande :
- docopt (voir cette vidéo)
- Beautiful soup : parser de code html ou xml
- PyEurocode 2 : bibliothèque de fonctions permettant d’effectuer des calculs de béton armé
- Accès d'un wiki (mediawiki, comme wikipedia) :
- Wikitools (sous Python 2)
- Mediawiki-utilities (sous Python 3)
- Création de tables, yc vers LaTeX :
Python Package Index (PyPI) : gestion,...
- The Starters Guide to Release your Python Package in PyPi, A step-by-step guide to effectively release your Python package in the Python Package Index (PyPI) to pip install it, Erdogan Taskesen, Medium, 14/42/2022
Autres distributions ou programmes utiles, pour utilisateurs avertis, ou programmeurs
- movpy, Movable Python (version fonctionnant sur clé USB, payante)
- Jython, implémentation JAVA de Python
- L'utilisation de Python à partir de la distribution “Linux Live DVD” de Knoppix permet d'écrire des programmes sans installer l'environnement complet de Python.
- Doxygen, système de génération de documentation, fonctionnant en autre avec Python
- Packaging : comment créer des paquets distribuables :
- virtualenv, un outil pour créer des environnements isolés, permettant d'utiliser des versions différentes de librairies. Trouvez des tutoriels ici, et aussi une alternative à virtualenv.
Python pour mobiles
- Android (smartphones ou tablettes)
- iOS
Python et la sécurité
Techniques particulières
- Tutorial To Implement k-Nearest Neighbors in Python From Scratch (analyse d'images et machine learning)
- High Performance Python Extensions in C, using NumPy's C API
Autres pages de liens sur Python
Exemples d'applications (libres) écrites en Python, ou utilisant Python, cookbook,...
- En chimie
- Vida-Vivant (openeye) : visualisation et communication de résultats de modélisation moléculaires
- BallView : modélisation moléculaire et visualisation
- Yasara : modélisation moléculaire et réalité virtuelle
- HippoDraw, logiciel générant des graphiques de données, en particulier statistiques
- Skencil : logiciel libre de dessin vectoriel
- FreeCAD, programme de computer aided design
- Le site freshmeat.net répertorie de nombreux projets Python, listable à partir des menus Browse by - Programming Language - Python
- PyScrabble : un jeu de Scrabble en ligne, multi-joueurs.
- Childplay : jeux éducatifs
- Python Cookbook de ActiveState, nombreux programmes Python
- Python based scientific analysis cookbook, une dizaine de programmes numériques simples et utiles utilisant scipy/pylab/matplotlib
- Pybibliographer : outil de gestion de base de données bibliographiques
- Anki : programme de mémorisation sur le principe des “flashcards” (cartes mémoires)
- Gourmet Recipe Manager : base de données de recettes de cuisine
- GRAMPS : logiciel de généalogie
- Pylote : logiciel éducatif pour dessiner sur l’écran et y manipuler les instruments de géométrie.
- Plusieurs outils de configuration, déploiement et gestion de parc informatique
- Salt Stack (cf. aussi ce site
- Advanced Python Scheduler : gestion temporelle de tâches en Python (permet d'être indépendant de cron)
- Indico : logiciel intégré d'organisation de conférences + documentation sur readthedocs.org
- gnuradio : outils logiciels pour créer des radios s'affranchissant de matériels non libres
- SANE-PyGTK : interface de scan minimaliste
- Calibre : gestion de livres électroniques (et papiers)
- Zim : un wiki personnel
- edX (Python & Ruby) : Education X, code du MOOC, ou Massively Open Online Courses (cours en ligne ouverts et massifs), créé par le Massachusetts Institute of Technology (MIT) et Harvard University.
- SDAPS : optical mark recognition (OMR) program (en Python et LaTeX)
- MoinMoin : wiki écrit en Python
- Phatch : Photo batch processing, multiOS
- OpenPLM, Une solution orientée produit et PLM (Product Lifecycle Management)
- GNU Mailman : logiciel de gestion de listes de diffusion et de newsletters
- MakeHuman, pour fabriquer des modèles 3D hummains
- Openstack, service d'infrastructure du domaine du cloud computing
- Django, framework web MVC
- OpenSlides, logiciel en ligne de présentation et de planification de réunions
- Plotly, site collaboratif d'analyse de données et de génération de graphiques
- Reddit, un site de partage de liens (code open source)
- PBS, Public Broadcasting Service (lien code source)
- Kallithea, gestion de codes sources utilisant les systèmes de version git et mercurial
- Sugar labs : environnement d'apprentissage éducatif
- Utilisez le langage de programmation Processing avec le "mode Python"
- pysensor application transmettant les données d'un accéléromètre d'un mobile
- Attic, programme de backup avec deduplication
- SchoolTool, logiciel pour la gestion administrative d'écoles
- JModelica, optimisation, simulation et analyse de systèmes dynamiques complexes, avec des possibilités de script en python
- SpaceShooter, retrogaming en pygame
- Pelican, générateur de site web statique
- GraphDash, outil Python (Flask) permettant de construire une interface web à partir de graphes (licence Apache v2)
- Pyllica, série de programmes en python permettant de récupérer automatiquement des textes sur Gallica
Applications très simples (pour étude) :
- pygamii, jeu ascii
Exemples d'applications en recherche scientifique de Python
Logiciels permettant l'ajout de plugins écrit en Python
- Referencer : logiciel de gestion de base de données bibliographiques
- GIMP, logiciel de traitement d'images
- OpenOffice.org, suite bureautique libre
- Gwyddion, modular program for SPM (scanning probe microscopy) data visualization and analysis
- Blender : extensions et scripts en Python du logiciel libre de modélisation 3D animée
- Avogadro & plugins python, éditeur/visualiseur de molécules, avancé et multiplateforme
- Scavis, environnement java de calcul et visualisation, pouvant être commandé en python.
- Tulip, visualisation de grands graphes
- UCSF Chimera, highly extensible program for interactive visualization and analysis of molecular structures and related data
- ONELAB, Open Numerical Engineering LABoratory (éléments finis), peut être utilisé par un client écrit en Python
- Paraview, visualisation de données scientifiques
Blogs consacrés au moins partiellement à Python
- Preshing on programming, blog avec de nombreuses applications scientifiques (Penrose, Mandelbrot, distributions aléatoires,…)
- http://blog.ouseful.info, blog contenant notamment du code Python (et R) générant des graphes sur des données de réseaux sociaux (Twitter,…)
- http://sebsauvage.net/python/ : rubrique Python du blog de SebSauvage, avec notamment
- http://sametmax.com/category/programmation/ : rubrique programmation avec une grande partie sur Python
- http://ianozsvald.com/ avec par exemple un lien à un tutoriel en 6h
- rotareeclub : applications en Python du framework django (matplotlib, rhéologie, …)
- Notional Identities (liens)
- Blog de Greg von Winckel : Scientific Computing with Python
- my python doodles : quelques petites applications scientifiques avec VPython, Tkinter,…
- FoxMask, Le Free de la passion
- Contributeurs sur GitHub :
- Word Aligned, de Thomas Guest
- import python, weekly newsletter
- John D. Cook (mathématicien)
- Regress to Impress, Dan Saber (UCLA)
- Analytics4All, Benjamin Larson
- Real Python, Learn Python Programming by Example
Articles intéressants
- Tutorial on PocketSphinx with Python 3.4 (reconnaissance vocale)
- Dive into Object Oriented Python (présentation)
- How We Deploy Python Code, Building, packaging, and deploying Python using versioned artifacts in Debian packages
- Awesome Functional Python, programmation fonctionnelle en Python
- Hypermodern Python (série par Claudio Jolowicz)
- 4 Super Useful Python Features, James Briggs, 08/05/2020
- Seven Tips To Clean Code With Python - Here are the seven tips and code bites that I use every day in my work as a data scientist Louis de Bruijn, Medium, Jan 27 2021
De Python 2 à Python 3
Python 3, une nouvelle branche n'assurant pas une rétrocompatibilité avec la branche 2 existe depuis 2007, mais est en version stable depuis moins longtemps. De plus en plus de librairies sont compatibles avec cette branche, mais beaucoup reste à faire. Python 2.7 continue à être maintenu et fonctionne avec la plupart des librairies.
La plupart des distributions Linux proposent (Q1 2015) à la fois la branche 2 (invoquée par la commande python) et la branche 3 (les noms sont terminés par le chiffre 3, et l'interpréteur est invoqué par exemple par “python3”. C'est dans de nombreux cas la version 3.4 qui est dans les dépôts. La version stable 14.04 LTS de Ubuntu propose Python en version 2.7 et 3.4.
Éléments de discussions sur le passage de Python 2 à Python 3 :
- https://github.com/asmeurer/python3-presentation (fonctionnalités avancées de Python 3)
- New in Python3 cheatsheet, avec des exemples de code
Quelques références sur Python 3
Installation conjointe des branches 3 et 2 (Ubuntu) :
- https://wiki.ubuntu.com/Python/3 L'installation conjointe se fait avec “sudo apt-get install python3”. De nombreux paquets peuvent être listés via synaptic.
- Configurations d'IDE :
- À investiguer :
- Pypi, le python package index “en 3” ?
- distribute, distutils2, python-pip ?
- Python 3.3 & 3.4 et pyvenv vs virtualenv
Résumés des changements principaux :
Python 2 | Python 3 |
---|---|
print a | print(a) |
7/3 → 2 7./3 → 2.33333333 | 7/3 → 2.33333333 7 / / 3 → 2 |
pas de chaîne unicode | les chaînes sont unicode |
binary = string | binary = données binaires (bytes) |
types entier et entier long | un seul type entier (=long) |
dico.has_key('cle') → True/False | 'cle' in dico → True/False |
from Tkinter import * | from tkinter import * |
execfile() | |
range() –> list xrange() → generator | range() → generator |
input() | eval(input()) |
raw_input() | input() |
Trucs, astuces, questions fréquentes, contributions personnelles,...
- …
À classer :
- https://github.com/tony/.dot-config/blob/125d1f96d66bff25227b258f08277b749dc6fee4/.vcspull.yaml : plein de liens github
- Pythonpedia (nombreux liens classés, catégorisés)
- ascii art (lib)
- MicroPython, python optmimisé pour fonctionner sur un micro-contrôleur
- Memory Management in Python - The Basics - PyCon 2016, vidéo par Nina Zakharenko
- Matlab vs Python: 9 Comparisons For Which Language is Best for You - Towards Data Science Zulie Rane, Medium, 02/10/2021
- 22 Things I Never Knew About Python Until Recently (Compilation) Liu Zuo Lin, Medium, 01/09/2022