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 02/07/2025, 08:48] – création §[Pixi] à compléter … ajout sources bcag2python [Le 29/01/2026, 13:10] (Version actuelle) – +tag vétuste (cf note pip3 et pipx sans quoi cette page est quasi inutile !) krodelabestiole
Ligne 1: Ligne 1:
-{{tag>programmation}}+{{tag>programmation vétuste}}
  
----- +{{ :python.png?130| Logo Python}}
- +
-{{ python.png?130nolink| Logo Python}}+
 ====== Langage de programmation 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. \\+**[[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. Il est régi par une licence libre proche de la licence BSD et fonctionne sur la plupart des plateformes.
  
-===== Programmer en Python =====+Par défaut, **Python** est installé sur Ubuntu. Saisir ''[[man>python3]]'' dans un [[:terminal]] donne donc accès à l'invite de commande Python. Pour connaître votre version de Python installé, entrez ''python3 -V'' dans le [[:terminal]]. 
 + 
 +**Python** est aussi un écosystème modulaire, qui propose une importante quantité de bibliothèques dont peut dépendre chaque script. Celles-ci sont centralisées sur le dépôt [[https://pypi.org/|PyPI]] est peuvent être gérées avec ''[[man>pip3]]''
 + 
 +<note important> 
 +**Cependant** : 
 + 
 +Sur Ubuntu, **Python** est étroitement lié au système. Pour une utilisation avancée on évitera donc d'utiliser la version native, installée par défaut (donc la commande ''[[man>python3]]''), ou ''[[man>pip3]]'', son gestionnaire de dépendance associé. 
 + 
 +C'est là qu'intervient **[[https://github.com/pypa/pipx|pipx]]** (ou ses équivalents) :\\ 
 +**pipx** permet d'exécuter chaque script **Python** dans un environnement isolé, ce qui permet d'utiliser les versions de son choix avec les dépendances de son choix sans interférer avec le système (à la manière de //[[:docker|containers]]//, en plus simple). 
 + 
 +Pour lancer un script local incluant une dépendance avec ''[[man>pipx]]'', la commande sera par exemple : 
 +  pipx run --spec dependence python3 script.py 
 +où ''dependence'' est une bibliothèque **Python** dont dépend ''script.py''
 +</note>
  
-Pour plus d'information sur la programmation en Python, référez-vous au portail [[:programmation#python|Programmation]]. \\ +<note>Pour plus d'information sur la programmation en Python, référez-vous au portail [[:programmation#python|Programmation]].</note>
-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)  ====+==== Logiciels éditeur Python (IDE)  ====
  
 Les logiciels pour éditer des scripts python : Les logiciels pour éditer des scripts python :
Ligne 55: Ligne 68:
 | UliPad         |**Y** | F |Y | 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 |    |   | | [[vim|Vim]]            |**Y** | F |Y | Y |Y |Y |Y |Y |Y |Y |   |Y |Y |Y |    |   |
 +| [[visual_studio_code|VS Code/Codium]] | **Y**| F |Y | Y |Y |Y |Y |Y |Y |Y |   |Y |Y |Y |    | [[https://code.visualstudio.com/docs/languages/python|module python pour codium/VSC]]  |
 | WingIde        |**Y** | C |Y | Y*|Y |Y |Y |Y |Y |Y |   |Y |Y |Y |    |   |* support for C | 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 |  |    |   | | Zeus           |W | C |  |    |  |Y |Y |Y |Y |   |Y |Y |  |    |   |
Ligne 60: Ligne 74:
  
 Acronymes: Acronymes:
 +  *     Y - Yes
   *     CP - Cross Platform — { multi-plateformes }   *     CP - Cross Platform — { multi-plateformes }
   *     C - Commercial — { sous licence commerciale }   *     C - Commercial — { sous licence commerciale }
Ligne 82: Ligne 97:
   *     M - Mac   *     M - Mac
 ==== Logiciels de création d'interface graphique ==== ==== Logiciels de création d'interface graphique ====
-Les logiciels pour créer des interfaces graphiques pour python: +Les logiciels et librairies pour créer des interfaces graphiques pour python: 
-  * QT Creator pour des interfaces en QT+  * Tkinter (librairie python) 
 +  * QT Creator (logiciel) ou pyQT (librairie python) pour des interfaces en QT
  
-Terminal  
 ===== Installation ===== ===== Installation =====
 +
 ==== Python 3 et Ubuntu ==== ==== Python 3 et Ubuntu ====
  
-=== Ubuntu 18.04 et suivant ===+Depuis Ubuntu [[:bionic|bionic 18.04]], **Python 3** est installé par défaut et est accessible via la commande ''[[man>python3]]''.
  
-Ubuntu [[:18.04]] est livrée avec //Python 3.6// par défaut, il suffit de taper ''python3'' pour l'invoquer.\\ +Actuellement, Ubuntu [[:noble|24.04]] est livrée avec **Python 3.12**.
-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 ==== ==== 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) 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> <code bash>pip install pyserial</code>
Ligne 105: Ligne 116:
 <code bash>pip list</code> On peut ajouter l'option //--local// pour ne lister que ceux installés localement (dans //$USER/.local/bin//)\\ <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> 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 ====+==== IDLE 3 ==== 
 +Pour installer IDLE, il suffit d'installer ''idle-python3.xx'' où 3.xx est la version que l'on a de python et on l'exécute en utilisant ce même nom. 
 + 
 +==== iPython/Jupyter ====
  
-Voici les instructions pour installer iPython (dans une version récente) sous 16.04, avec ''pip'' \\ +Voici les instructions pour installer [[wpfr>IPython]] et [[wpfr>Jupyter]] :
-(la première ligne installe pip3)+
 <code bash> <code bash>
-$ sudo apt install python3-pip +pip3 install jupyter 
-$ pip3 install --upgrade pip +pip3 install ipython
-$ sudo pip3 install jupyter +
-$ sudo pip3 install ipython+
 </code> </code>
  
Ligne 123: Ligne 132:
 Il existe plusieurs alternatives, notamment :\\ Il existe plusieurs alternatives, notamment :\\
   * Micromamba : https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html   * Micromamba : https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html
-  * Pixi : https://pixi.sh/latest/+  * Miniforge : installateur maintenu par conda-forge (communautaire) pour mamba/conda https://github.com/conda-forge/miniforge 
 +  * [[#pixi|Pixi]] : https://pixi.sh/latest/
  
 Pixi semble être la solution la plus ergonomique pour gérer des environnements conda sans Anaconda ni Miniconda. Pixi présente pas mal d'avantages (https://prefix.dev/blog/pixi_a_fast_conda_alternative) et est très orienté science (https://prefix.dev/blog/pixi_for_scientists) Pixi semble être la solution la plus ergonomique pour gérer des environnements conda sans Anaconda ni Miniconda. Pixi présente pas mal d'avantages (https://prefix.dev/blog/pixi_a_fast_conda_alternative) et est très orienté science (https://prefix.dev/blog/pixi_for_scientists)
Ligne 138: Ligne 148:
     * [[hplip#mot_de_passe_root_demande|hplip]]     * [[hplip#mot_de_passe_root_demande|hplip]]
 ==== Pixi ==== ==== Pixi ====
-Avec [[https://pixi.sh|Pixi]], on peut complètement éviter de dépendre des serveurs de l'entreprise //Anaconda// et à la place dépendre des serveurs de //Prefix// (l'entreprise allemande derrière mamba et Pixi).+Avec [[https://pixi.sh|Pixi]]((sous licence BSD-3… [[https://github.com/prefix-dev/pixi/blob/main/LICENSE]] qui utilise //conda-forge// également sous BSD-3 [[https://github.com/conda-forge/conda-forge.github.io/blob/main/LICENSE]])) , on peut complètement éviter de dépendre des serveurs de l'entreprise //Anaconda// et à la place dépendre des serveurs de //Prefix// (l'entreprise allemande derrière mamba et Pixi).
  
 Pour l'installer : Pour l'installer :
Ligne 154: Ligne 164:
  
 Également basé sur le canal Anaconda. Les réserves exprimées ci-dessus sont donc également vraies pour Miniconda.\\ Également basé sur le canal Anaconda. Les réserves exprimées ci-dessus sont donc également vraies pour Miniconda.\\
-[[miniconda|Miniconda]] permet de limiter le nombre de paquets ou de n'installer que le strict nécessaire. Ça n'installe que le gestionnaire de paquet //conda//+[[:Miniconda]] permet de limiter le nombre de paquets ou de n'installer que le strict nécessaire. Ça n'installe que le gestionnaire de paquet //conda//
  
 ===== Utilisation ===== ===== Utilisation =====
Ligne 160: Ligne 170:
  
 ==== Debugger avec PDB ==== ==== 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> <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]]\\ [[https://docs.python.org/3/library/pdb.html|PDB]] est une solution de débuggage en ligne de commande similaire à [[:gdb|GDB]]\\
Ligne 166: Ligne 177:
 Le //pdb.set_trace()// peut-être mis plus tard dans le 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…) 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 ===== ===== Logiciels liés à Python =====
Ligne 178: Ligne 184:
  
 {{backlinks>.}} {{backlinks>.}}
-  * [[wpfr>SageMath|SageMath (CAS)]]+
 ===== Voir aussi ===== ===== Voir aussi =====
  
-  * [[wpfr>Python_(langage)|Python  sur wikipedia]] [fr] +  * **(//en//)** [[https://www.python.org/|Site officiel]]  
-  * [[https://www.afpy.org/|Association francophone Python]] [fr+  * [[wpfr>Python_(langage)|Python]] sur wikipedia 
-  * [[http://wikipython.flibuste.net/|Wiki Python francophone]] [fr] +  * [[https://www.afpy.org/|Association francophone Python]] 
-  * [[https://www.python.org/|Site officiel]] [en+  * [[http://wikipython.flibuste.net/|Wiki Python francophone]] 
-  * [[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]]// 
-  * [[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 
-  * [[https://frederic-lang.developpez.com/tutoriels/python/python-de-zero/|Tutoriel complet sur developpez.com]] [fr] +  * //[[https://openclassrooms.com/en/courses/7168871-apprenez-les-bases-du-langage-python|Apprenez les bases du langage Python]]// sur OpenClassrooms 
-  * [[https://www.fun-mooc.fr/courses/course-v1:UCA+107001+session01/about | MOOC python 3 Inria sur France Universités Numériques]] [fr] +  * //[[http://www.jchr.be/python/manuel.htm|Introduction au langage Python3]]// 
-  * [[https://openclassrooms.com/en/courses/7168871-apprenez-les-bases-du-langage-python]] [fr] +  * [[https://inforef.be/swi/python.htm|Apprendre à programmer avec Python" - Gérard Swinnen]] librement téléchargeable à l'adresse [[https://inforef.be/swi/download/apprendre_python3_5.pdf]] (version janv. 2012) 
-  * [[http://www.jchr.be/python/manuel.htm]] [fr] +  * **(//en//)** [[https://python.swaroopch.com/]] 
-  * [[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) +  * **(//en//)** [[http://ipython.org/]] 
-  * [[https://python.swaroopch.com/]] [en+  * **(//en//)** **[[https://github.com/exaloop/codon|Codon]]** ou comment compiler et accélérer du code python ! et sa [[https://docs.exaloop.io/codon|documentation]] 
-  * [[http://ipython.org/]] +  * **(//en//)** **[[https://docs.astral.sh/uv/|uv]]**, gestion de projets et de paquets.
-  * [[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+
-  * [[https://docs.astral.sh/uv/#highlights]] [en] gestion de projets et de paquets. +
----------+
  
-//Contributeurs : [[:utilisateurs:draco31.fr|draco31.fr]]; Traduction des acronymescorrection grammaticale [[:utilisateurs:eagle08|René Stoecklin]][[:utilisateurs:bcag2]]//+---- 
 +//Contributeurs : [[:utilisateurs:draco31.fr|draco31.fr]], [[:utilisateurs:eagle08|René Stoecklin]][[:utilisateurs:bcag2]], [[:utilisateurs:krodelabestiole]].//