Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
python [Le 21/05/2019, 19:53] 41.244.241.154 |
python [Le 02/10/2023, 09:57] (Version actuelle) bcag2 inversion ordre des § python2 python3 |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | print('test') | + | {{tag>programmation}} |
+ | ---- | ||
+ | |||
+ | {{ python.png?130nolink| Logo Python}} | ||
+ | ====== Langage de programmation Python ====== | ||
+ | |||
+ | [[wpfr>Python_(langage)|Python]] est un langage de programmation interprété, orienté objet, dont l'utilisation va des scripts systèmes aux applications web. \\ | ||
+ | Il est régi par une licence libre proche de la licence BSD et fonctionne sur la plupart des plateformes. | ||
+ | |||
+ | ===== Programmer en Python ===== | ||
+ | |||
+ | Pour plus d'information sur la programmation en Python, référez-vous au portail [[:programmation#python|Programmation]]. \\ | ||
+ | Par défaut, Python est installé sur %%GNU/Linux%%. \\ Sous Ubuntu par exemple, saisir "python" dans un [[:terminal]] pour avoir accès à l'invite de commande Python. Pour connaître votre version de Python installé, tapez "python -V" dans le [[:terminal]]. | ||
+ | |||
+ | ==== Logiciel éditeur Python (IDE) ==== | ||
+ | |||
+ | Les logiciels pour éditer des scripts python : | ||
+ | |||
+ | ^Nom^Cross Platform^Commercial ou Free^Auto Code Completion^Multi-Language Support^Integrated Python Debugging^Error Markup^Source Control Integration^Smart Indent^Bracket Matching^Line Numbering^UML Editing or Viewing^Code Folding^Code Templates ^Unit Testing^GUI Designer^Integrated DB Support ^ Rapid Application Development^ | ||
+ | ^Nom^CP^C/F^AC^MLS^PD^EM^SC^SI^BM^LN^UML^CF^CT^UT^UID^DB^RAD^comments^ | ||
+ | |BlackAdder |**Y** | C | | | | | |Y | | | |Y | | | | | | | | ||
+ | |[[bluefish|BlueFish]] |**L** | | | | | | | | | | | | | | | | | | ||
+ | |Boa Constructor|**Y** | F |Y | |Y |Y | |Y |Y |Y | Y |Y |Y | | | | | | ||
+ | | ConTEXT |W | C | | | | | | | | | | | | | | | | | ||
+ | |DABO |**Y** | | | | | | | | | | | | | | | | | | ||
+ | | DreamPie | | F | | | | | | | | | | | | | | | | | ||
+ | |Dr.Python | | F | | | |Y | | | | | | | | | | | | | | ||
+ | |Editra |**Y** | F |Y | Y | | |Y |Y |Y |Y | |Y | | | | | | | ||
+ | |[[emacs|Emacs]] |**Y** | F |Y | Y |Y |Y |Y |Y |Y |Y | Y |Y |Y |Y | | | | | ||
+ | |[[eric|Eric Ide]] |**Y** | F |Y | Y |Y |Y |Y |Y |Y |Y |Y |Y |Y |Y |Y¹ |Y² | |¹QtDesigner ²Navigateur SQL intégré| | ||
+ | |E-Texteditor |W | | | | | | | | | | | | | | | | | | ||
+ | |[[geany|Geany]] |**Y** | F |Y*| Y | | | |Y |Y |Y | |Y | | | | | |* very limited| | ||
+ | |[[gedit|Gedit]] |**Y** | F |Y¹| Y | | | |Y |Y |Y | | |Y²| | | | |¹ with plugin ² sort of| | ||
+ | | [[idle|Idle]] |**Y** | F |Y | | | | | | | | | | | | | | | | ||
+ | | [[jedit|JEdit]] |**Y** | F | | Y | | | | |Y |Y | |Y | | | | | | | ||
+ | | [[kdevelop|KDevelop]] |**Y** | F | | Y | | |Y |Y |Y |Y | |Y | | | | | | | ||
+ | ^Nom^CP^C/F^AC^MLS^PD^EM^SC^SI^BM^LN^UML^CF^CT^UT^UID^DB^RAD^comments^ | ||
+ | | [[komodo_edit|Komodo]] |**Y** |C/F|Y | Y |Y |Y |Y |Y |Y |Y | |Y |Y |Y | |Y | | | ||
+ | | [[netbeans|NetBeans]] |**Y** | F |Y | Y |Y | |Y |Y |Y |Y | Y |Y |Y |Y | | | Y | | ||
+ | | NotePad++ |W | F | | Y | | | | | |Y | | | | | | | | | ||
+ | | Pfaide |W | C |Y | Y | | | |Y |Y |Y | |Y |Y | | | | | | ||
+ | | PIDA |**L**W| F |Y | Y | | | |Y |Y |Y | |Y | | | | | |VIM based | ||
+ | | PTVS |W | F |Y | Y |Y |Y |Y |Y |Y |Y | |Y | | |Y* | | Y |*WPF bsed | ||
+ | | [[:PyCharm]] |**Y** | C |Y | Y*|Y | |Y |Y |Y |Y | |Y | |Y | | | |* javascript | ||
+ | | PyDev([[eclipse|Eclipse]]) |**Y** | F |Y | Y |Y |Y |Y |Y |Y |Y | Y |Y |Y |Y | | | | | ||
+ | | Pyscripter |W | F |Y | |Y |Y | |Y | |Y | | |Y |Y | | | | | ||
+ | | PythonWin |W | F |Y | |Y | | |Y |Y | | |Y | | | | | | | ||
+ | | [[scite|SciTE]] |**Y** | F | | Y | |Y | | |Y |Y | |Y |Y | | | | | | ||
+ | | ScriptDev |W | C |Y | Y |Y |Y | |Y |Y |Y | |Y |Y | | | | | | ||
+ | | SPE | | F |Y | | | | | | | | Y | | | | | | | | ||
+ | | [[spyder|Spyder/spyderlib]] |**Y** | F |Y | |Y |Y | |Y |Y |Y | | | | | | | | | ||
+ | | [[sublime-text|Sublime Text]] |**Y** | C |Y | Y | | | |Y |Y |Y | | |Y | | | | |extensible w/python | ||
+ | | TextMate |M | | | Y | | | |Y |Y |Y | |Y |Y | | | | | | ||
+ | | UliPad |**Y** | F |Y | Y |Y | | |Y |Y | | | |Y |Y | | | | | ||
+ | | [[vim|Vim]] |**Y** | F |Y | Y |Y |Y |Y |Y |Y |Y | |Y |Y |Y | | | | | ||
+ | | WingIde |**Y** | C |Y | Y*|Y |Y |Y |Y |Y |Y | |Y |Y |Y | | | |* support for C | ||
+ | | Zeus |W | C | | | | |Y |Y |Y |Y | |Y |Y | | | | | | ||
+ | ^Nom^CP^C/F^AC^MLS^PD^EM^SC^SI^BM^LN^UML^CF^CT^UT^UID^DB^RAD^comments^ | ||
+ | |||
+ | Acronymes: | ||
+ | * CP - Cross Platform — { multi-plateformes } | ||
+ | * C - Commercial — { sous licence commerciale } | ||
+ | * F - Free — { sous licence gratuite } | ||
+ | * AC - Automatic Code-completion — { finalisation automatique du code } | ||
+ | * MLS - Multi-Language Support — { intégration multilingue } | ||
+ | * PD - Integrated Python Debugging { interface de débogage du code Python intégrée } | ||
+ | * EM - ErrorMarkup — { procédure de balisage d'erreurs } | ||
+ | * SC - Source Control integration — { procédure de contrôle du code source intégrée } | ||
+ | * SI - Smart Indent — { formatage intelligent du code source } | ||
+ | * BM - Bracket Matching — { fermeture automatique des différentes parenthèses } | ||
+ | * LN - Line Numbering — { numérotation automatique des lignes de code } | ||
+ | * UML - UML editing / viewing — { édition et visualisation du langage unifié de modélisation graphique } | ||
+ | * CF - Code Folding — { procédure de repli synthétique du code source } | ||
+ | * CT - Code Templates — { modélisation/prototypage du code source } | ||
+ | * UT - Unit Testing — { tests des unités de commandes } | ||
+ | * UID - GUI Designer (for example, Qt, Eric, ..) — { module de conception des interfaces graphiques dédiées à l'utilisateur } | ||
+ | * DB - integrated database support — { intégration et gestion des bases de données } | ||
+ | * RAD - Rapid application development support — { gestion de la modélisation/du développement accélérés des applications } | ||
+ | * L - Linux | ||
+ | * W - Windows | ||
+ | * M - Mac | ||
+ | ==== Logiciels de création d'interface graphique ==== | ||
+ | Les logiciels pour créer des interfaces graphiques pour python: | ||
+ | * QT Creator pour des interfaces en QT | ||
+ | |||
+ | Terminal | ||
+ | ===== Installation ===== | ||
+ | ==== Python 3 et Ubuntu ==== | ||
+ | |||
+ | === Ubuntu 18.04 et suivant === | ||
+ | |||
+ | Ubuntu [[:18.04]] est livrée avec //Python 3.6// par défaut, il suffit de taper ''python3'' pour l'invoquer.\\ | ||
+ | Sous [[:focal]] c'est //Python 3.8//, accessible avec ''python'', python 2 n'étant plus installé par défaut !. | ||
+ | |||
+ | ==== Python 2 ==== | ||
+ | Python 2 est installé par défaut jusqu'à [[:Bionic]] (version 2.7), il suffit de taper ''python'' dans un terminal pour accéder à l'interpréteur. | ||
+ | |||
+ | <note warning> Python 2.7 est en fin de vie depuis le 1er janvier 2020. Il est recommandé de passer à Python 3 car Python 2 n'est plus supporté. Une future version du PIP abandonnera la prise en charge de Python 2.7. Plus de détails sur le support de Python 2 dans PIP : https://PIP.PYPA.IO/fr/Latest/Development/release-process/#python-2-support </note> | ||
+ | |||
+ | ==== Les modules ==== | ||
+ | Il faut souvent ajouter des modules (bibliothèques) à l'installation de base. Cela peut-être fait via les suites d'outils [[:python#anaconda]] ou [[:python#miniconda]] évoquées ci-dessous, mais si vous n'avez besoin que de quelques modules, il est possible de les ajouter avec le gestionnaire de paquets python [[wpfr>Pip_(gestionnaire_de_paquets)|PIP]], par exemple, pour installer le module PySerial (communication série) | ||
+ | <code bash>pip install pyserial</code> | ||
+ | Pour lister les modules installés : | ||
+ | <code bash>pip list</code> On peut ajouter l'option //--local// pour ne lister que ceux installés localement (dans //$USER/.local/bin//)\\ | ||
+ | Sans l'option ci-dessus, il y en a beaucoup, aussi un //pipe// avec grep peut être utile !<code bash>pip list | grep pyserial</code> | ||
+ | ==== IDLE 3.6 ==== | ||
+ | Pour installer IDLE en version //Python 3.6// (si on a déjà installé Python en 3.6), il suffit d'installer ''idle-python3.6'' et on l'exécute en utilisant ce même nom. | ||
+ | |||
+ | ==== iPython ==== | ||
+ | |||
+ | Voici les instructions pour installer iPython (dans une version récente) sous 16.04, avec ''pip'' : \\ | ||
+ | (la première ligne installe pip3) | ||
+ | <code bash> | ||
+ | $ sudo apt install python3-pip | ||
+ | $ pip3 install --upgrade pip | ||
+ | $ sudo pip3 install jupyter | ||
+ | $ sudo pip3 install ipython | ||
+ | </code> | ||
+ | |||
+ | ==== Anaconda ==== | ||
+ | Anaconda est une suite d'outils (plus de 200 paquets et plus de 500Mo) allant de l'éditeur [[:spyder|Spyder]] au framework [[:qt|Qt]] et [[:pyqt|PyQt]], en passant par [[https://jupyter.org/|jupyter]] pour les notebook, et de nombreuses librairies de programmation, //pip// et //pep8//…\\ | ||
+ | Pour l'installer, reportez-vous à la page dédiée sur le site officiel:\\ | ||
+ | [[https://docs.anaconda.com/anaconda/install/linux]]\\ | ||
+ | La [[https://docs.anaconda.com/anaconda/packages/py3.6_linux-64|liste des paquets installés]] est visualisable via //anaconda-navigator// puis //Environnements//. En cas de soucis, pensez à mettre à jour le navigateur: | ||
+ | <code>conda update anaconda-navigator </code> | ||
+ | |||
+ | Attention, l'installation d'Anaconda peut entrer en conflit avec la version système de Python et ainsi causer problème avec certaines applications. Des problèmes ont été rencontrés avec les applications suivantes: | ||
+ | |||
+ | * [[hplip#mot_de_passe_root_demande|hplip]] | ||
+ | ==== Miniconda ==== | ||
+ | Pour limiter le nombre de paquets ou n'installer que le nécessaire, il existe aussi [[miniconda|Miniconda]] qui n'installe que le gestionnaire de paquet //conda// | ||
+ | |||
+ | ===== Utilisation ===== | ||
+ | De nombreuses ressources sont disponibles sur le web pour apprendre à programmer en Python, reportez-vous aux [[#voir_aussi|liens de cette page]] | ||
+ | |||
+ | ==== Debugger avec PDB ==== | ||
+ | <note warning>Si vous êtes débutant, vous préférerez sans doute l'utilisation d'un [[#logiciel_editeur_python_ide|IDE]] tel que spyder, eclipse, pycharm</note> | ||
+ | [[https://docs.python.org/3/library/pdb.html|PDB]] est une solution de débuggage en ligne de commande similaire à [[:gdb|GDB]]\\ | ||
+ | Pour pouvoir l'utiliser, il suffit d'ajouter en début de votre fichier python la ligne: | ||
+ | <code>import pdb; pdb.set_trace() # pour débugger… en ligne de commande !-) </code> | ||
+ | Le //pdb.set_trace()// peut-être mis plus tard dans le code ! | ||
+ | |||
+ | Pour débugger, lancer l'exécution de votre fichier: | ||
+ | <code>python mon_script.py</code> | ||
+ | ou dans [[:vim]]: | ||
+ | <code>:!python %</code> | ||
+ | Reportez-vous à la doc de [[:gdb|GDB]] ou à [[https://docs.python.org/3/library/pdb.html|la doc officielle]] pour débugger (point d'arrêt, raccourcis…) | ||
+ | |||
+ | |||
+ | ===== Logiciels liés à Python ===== | ||
+ | |||
+ | Voici la liste des pages de la documentation présentant les logiciels liés au langage Python : | ||
+ | |||
+ | {{backlinks>.}} | ||
+ | * [[wpfr>SageMath|SageMath (CAS)]] | ||
+ | ===== Voir aussi ===== | ||
+ | |||
+ | * [[wpfr>Python_(langage)|Python sur wikipedia]] [fr] | ||
+ | * [[https://www.afpy.org/|Association francophone Python]] [fr] | ||
+ | * [[http://wikipython.flibuste.net/|Wiki Python francophone]] [fr] | ||
+ | * [[https://www.python.org/|Site officiel]] [en] | ||
+ | * [[https://www.howopensource.com/2011/05/how-to-install-and-manage-different-versions-of-python-in-linux/|How to install and manage different versions of Python in Linux]] [en] | ||
+ | * [[http://python.lycee.free.fr/|Débuter avec Python au lycée]] [fr] | ||
+ | * [[https://frederic-lang.developpez.com/tutoriels/python/python-de-zero/|Tutoriel complet sur developpez.com]] [fr] | ||
+ | * [[https://www.fun-mooc.fr/courses/course-v1:UCA+107001+session01/about | MOOC python 3 Inria sur France Universités Numériques]] [fr] | ||
+ | * [[https://openclassrooms.com/en/courses/7168871-apprenez-les-bases-du-langage-python]] [fr] | ||
+ | * [[http://www.jchr.be/python/manuel.htm]] [fr] | ||
+ | * [[https://inforef.be/swi/python.htm|Apprendre à programmer avec Python" - Gérard Swinnen]] [fr] librement téléchargeable à l'url: [[https://inforef.be/swi/download/apprendre_python3_5.pdf]] (version janv. 2012) | ||
+ | * [[https://python.swaroopch.com/]] [en] | ||
+ | * [[http://ipython.org/]] | ||
+ | * [[https://github.com/exaloop/codon|Codon]] [en] ou comment compiler et accélérer du code python ! et sa [[https://docs.exaloop.io/codon|documentation]] [en] | ||
+ | --------- | ||
+ | |||
+ | //Contributeurs : [[:utilisateurs:draco31.fr|draco31.fr]]; Traduction des acronymes, correction grammaticale [[:utilisateurs:eagle08|René Stoecklin]]; [[:utilisateurs:bcag2]]// |