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édentes Révision précédente
Prochaine révision Les deux révisions suivantes
python [Le 21/05/2019, 19:53]
41.244.241.154
python [Le 21/05/2019, 21:00]
193.250.138.66 ancienne révision (Le 28/03/2019, 03:48) restaurée
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 placé sous 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
 +  *     C - Commercial
 +  *     F - Free
 +  *     AC - Automatic Code-completion
 +  *     MLS - Multi-Language Support
 +  *     PD - Integrated Python Debugging
 +  *     EM - ErrorMarkup
 +  *     SC - Source Control integration
 +  *     SI - Smart Indent
 +  *     BM - Bracket Matching
 +  *     LN - Line Numbering
 +  *     UML - UML editing / viewing
 +  *     CF - Code Folding
 +  *     CT - Code Templates
 +  *     UT - Unit Testing
 +  *     UID - GUI Designer (for example, Qt, Eric, ..)
 +  *     DB - integrated database support
 +  *     RAD - Rapid application development support
 +  *     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. //(Plus pour Bionic, 18.04?)//
 +
 +==== Python 3 et Ubuntu ====
 +=== Ubuntu 14.04 et 16.04 ===
 +
 +La dernière version (3.6) n'est pas dans les dépots de la dernière LTS 16.04 (ni de la précédente 14.04) . La version 3.6 apporte 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>​
 +$ 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''​ !
 +
 +=== Ubuntu 17.04 ===
 +Pour //Ubuntu [[:​17.04]]//,​ //Python 3.6// est proposé dans le dépôt universe, donc si ce dépôt est activé, il suffit de taper :
 +<​code>​
 +$ sudo apt install python3.6 ​
 +</​code>​
 +
 +=== Ubuntu 17.10 ===
 +
 +Ubuntu [[:17.10]] est livré avec //Python 3.6// par défaut, il suffit de taper ''​python3''​ pour l'​invoquer.
 +
 +=== Correction bug apt-add-repository ​ ===
 +
 +Après avoir installé Python 3.6 (FIXME sur quelle version d'​ubuntu?​),​ il est possible d'​avoir une erreur en exécutant ''​apt-add-repository''​ :
 +
 +<​code>​
 +$ sudo apt-add-repository 'deb http://​liveusb.info/​multisystem/​depot all main'
 +Traceback (most recent call last):
 +  File "/​usr/​bin/​apt-add-repository",​ line 11, in <​module>​
 +    from softwareproperties.SoftwareProperties import SoftwareProperties,​ shortcut_handler
 +  File "/​usr/​lib/​python3/​dist-packages/​softwareproperties/​SoftwareProperties.py",​ line 27, in <​module>​
 +    import apt_pkg
 +ModuleNotFoundError:​ No module named '​apt_pkg'​
 +Error in sys.excepthook:​
 +Traceback (most recent call last):
 +  File "/​usr/​lib/​python3/​dist-packages/​apport_python_hook.py",​ line 63, in apport_excepthook
 +    from apport.fileutils import likely_packaged,​ get_recent_crashes
 +  File "/​usr/​lib/​python3/​dist-packages/​apport/​__init__.py",​ line 5, in <​module>​
 +    from apport.report import Report
 +  File "/​usr/​lib/​python3/​dist-packages/​apport/​report.py",​ line 30, in <​module>​
 +    import apport.fileutils
 +  File "/​usr/​lib/​python3/​dist-packages/​apport/​fileutils.py",​ line 23, in <​module>​
 +    from apport.packaging_impl import impl as packaging
 +  File "/​usr/​lib/​python3/​dist-packages/​apport/​packaging_impl.py",​ line 23, in <​module>​
 +    import apt
 +  File "/​usr/​lib/​python3/​dist-packages/​apt/​__init__.py",​ line 23, in <​module>​
 +    import apt_pkg
 +ModuleNotFoundError:​ No module named '​apt_pkg'​
 +</​code>​
 +
 +Il manque un fichier ''/​usr/​lib/​python3/​dist-packages/​apt_pkg.so''​ ! Il suffit de faire un lien symbolique avec le fichier ''​apt_pkg.cpython-*.so''​ dans le répertoire ''/​usr/​lib/​python3/​dist-packages''​.
 +==== 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>​
 +$ 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>​
 +
 +==== 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/​]]
 +---------
 +
 +//​[[:​utilisateurs:​draco31.fr|draco31.fr]] Le 25/06/2010, 22:23//
  • python.txt
  • Dernière modification: Le 02/10/2023, 09:57
  • par bcag2