Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
python [Le 21/05/2019, 21:00] – ancienne révision (Le 28/03/2019, 03:48) restaurée 193.250.138.66python [Le 02/02/2021, 13:28] (Version actuelle) – [Python 3 et Ubuntu] mettre en avant les versions récentes bcag2
Ligne 1: Ligne 1:
 +{{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
 +
 +
 +===== Installation =====
 + ==== Python 2 ====
 +Python 2 est installé par défaut, il suffit de taper ''python'' dans un terminal pour accéder à l'interpréteur. \\ Pour Bionic 18.04, c'est la version 2.7 qui est installée.
 +
 +<note warning>DEPRECATION: Python 2.7 will reach the end of its life on January 1st, 2020. \\ Please upgrade your Python as Python 2.7 won't be maintained after that date. A future version of pip will drop support for Python 2.7. 
 +
 +More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support</note>
 +
 +==== Python 3 et Ubuntu ====
 +
 +=== Ubuntu 18.04 et suivant ===
 +
 +Ubuntu [[:18.04]] est livrée avec //Python 3.6// par défaut, [[:focal]] avec python 3.8. Il suffit de taper ''python3'' pour l'invoquer.
 +
 +=== Ubuntu 16.04 ===
 +
 +La dernière version (3.6) n'est pas dans les dépots de la dernière LTS 16.04. \\ La version 3.6 comporte des différences significatives par rapport à la version précédente (entre autres avec les F String) et peut être nécessaire.
 +
 +Pour installer Python 3.6 avec Ubuntu 16.04, il faut ajouter un ppa :
 +  * soit  ''jonathonf/python-3.6''
 +  * soit ''deadsnakes/ppa''
 +
 +Puis on installe Python 3.6.
 +
 +Les commandes complètes avec, par exemple, //jonathon// ppa :
 +
 +<code bash>
 +$ sudo add-apt-repository ppa:jonathonf/python-3.6
 +$ sudo apt update
 +$ sudo apt install python3.6 
 +</code>
 +
 +Pour invoquer l'interpréteur, il faut taper ''python3'' ou ''python3.6'' !
 +==== 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 [[https://conda.io/miniconda.html|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]
 +  * [[http://www.afpy.org/|Association francophone Python]] [fr]
 +  * [[http://wikipython.flibuste.net/|Wiki Python francophone]] [fr]
 +  * [[http://www.python.org/|Site officiel]] [en]
 +  * [[http://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://www.fun-mooc.fr/courses/course-v1:UCA+107001+session01/about | MOOC python 3 Inria sur France Universités Numériques]] [fr]
 +  * [[http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-python]] [fr]
 +  * [[http://www.jchr.be/python/manuel.htm]] [fr]
 +  * [[http://inforef.be/swi/python.htm|Apprendre à programmer avec Python" - Gérard Swinnen]] [fr] librement téléchargeable à l'url: [[http://inforef.be/swi/download/apprendre_python3_5.pdf]] (version janv. 2012)
 +  * [[http://www.swaroopch.com/notes/python/]] [en]
 +  * [[http://www.esi.umontreal.ca/~mousseau/phy1234/notes/notes_1.html]] [fr]
 +  * [[http://ipython.org/]]
 +---------
 +
 +//Date de création : 25 juin 2010.[[:utilisateurs:draco31.fr|draco31.fr]];
 +Traduction des acronymes, correction grammaticale [[:utilisateurs:eagle08|René Stoecklin]];//