Logo de Python

Langage de programmation Python

Python est un langage de programmation interprété, orienté objet, qui permet de développer toutes sortes de projets, de scripts simples aux applications web. Il est en outre utilisé par de nombreux outils système d'Ubuntu.

Il est libre et fonctionne sur la plupart des plateformes.

Python est installé par défaut sur Ubuntu. Saisir python3 dans un terminal donne donc accès à l'invite de commande Python.
Pour connaître la version installée, entrer la commande python3 -V.

Python est très populaire. Il est donc aussi devenu un immense écosystème modulaire, composé d'une importante quantité de bibliothèques, dont peut dépendre tout projet. Celles-ci sont centralisées sur le dépôt PyPI est peuvent être gérées avec pip3.

Pour plus d'information sur la programmation en Python, voir le portail Programmation.

Environnements virtuels/isolés

Sur Ubuntu, Python est étroitement lié au système : il est utilisé par de nombreux outils fournissant des fonctionnalités essentielles à l'ordinateur. Pour une utilisation avancée, mieux vaut donc éviter d'utiliser la version native, installée par défaut (donc la commande python3), ou pip3, son gestionnaire de dépendances associé.

C'est là qu'interviennent différentes solutions pour initier et gérer des environnements virtuels (ou isolés) et utiliser les versions de son choix avec les dépendances de son choix sans interférer avec le système (à la manière de containers, en plus simple) . Certaines se présentent directement sous la forme de gestionnaires de dépendances.

venv

virtualenv est la solution de base, fournie par l'écosystème Python.

Gestionnaires de dépendances

Un gestionnaire de dépendance permet d'installer, mettre à jour, ou désinstaller des bibliothèques logicielles, à la manière des paquets d'APT. Python permet de plus de spécifier dans chaque projet les bibliothèques dont celui-ci dépend.
Le gestionnaire le plus couramment utilisé est pip, ou désormais plus exactement pip3 :

pip3

pip3 permet de gérer l'installation de dépendances Python depuis le dépôt PyPI), ainsi que leur mise à jour ou leur désinstallation.

Il est installé par défaut sur Ubuntu. Il est fournit par le paquet python3-pip.

On peut l'utiliser avec la commande pip3 :

pip3 --help

permet d'afficher la liste et la description des sous-commandes disponibles.
La sous-commande install permet par exemple d'installer une dépendance.

Pour la gestion des dépendances avec pip, voir le chapitre Modules/dépendances ci-dessous.

PipX

PipX permet de remplacer pip, en installant les dépendances de son choix, mais cette fois dans l'environnement de son choix (la version de Python), et de manière très simple.

Pour utiliser PipX, installer le paquet pipx.

Pour lancer un script local incluant une dépendance avec pipx, la commande sera par exemple :

pipx run --spec dependence python3 script.py

dependence est une bibliothèque Python dont dépend script.py.

En dehors de ces fonctionnalités spécifiques, pipx s'utilise de manière relativement similaire à pip3.

Pixi

Pixi est un autre gestionnaire de dépendances très répandu, qui gère d'autres langages que le Python.

Avec Pixi1), 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 :

curl -fsSL https://pixi.sh/install.sh | sh
# ou avec wget :
wget -qO- https://pixi.sh/install.sh | sh

Facile à mettre à jour en relançant l'installation ou

pixi self-update

uv

uv2) est aussi un gestionnaire de dépendance très répandu, rapide (développé en Rust).

Applications

Éditeurs Python

Les applications (IDE) pour éditer des scripts Python :

NomCross PlatformCommercial ou FreeAuto Code CompletionMulti-Language SupportIntegrated Python DebuggingError MarkupSource Control IntegrationSmart IndentBracket MatchingLine NumberingUML Editing or ViewingCode FoldingCode Templates Unit TestingGUI DesignerIntegrated DB Support Rapid Application Development
Nom CP C/FACMLSPDEMSCSIBMLNUMLCFCTUTUIDDBRADcomments
BlackAdder Y C Y Y
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 Y F Y Y Y Y Y Y Y Y Y Y Y Y
Eric Ide Y F Y Y Y Y Y Y Y Y Y Y Y Y ¹QtDesigner ²Navigateur SQL intégré
E-Texteditor W
Geany Y F Y* Y Y Y Y Y *très limité
Gedit Y F Y Y Y Y ¹avec extension ²plus ou moins
Idle Y F Y
JEdit Y F Y Y Y Y
KDevelop Y F Y Y Y Y Y Y
Nom CP C/FACMLSPDEMSCSIBMLNUMLCFCTUTUIDDBRADcomments
KomodoYC/FYYY Y Y Y Y Y Y Y Y Y
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 LW F Y Y Y Y Y Y basé sur VIM
PTVS W F Y Y Y Y Y Y Y Y Y Y* Y *basé sur WPF
PyCharm Y C Y Y*Y Y Y Y Y Y Y *JavaScript
PyDev(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 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/spyderlibYFYYY Y Y Y
Sublime TextYCYY Y Y Y Y extension Python
TextMate M Y Y Y Y Y Y
UliPad Y F Y Y Y Y Y Y Y
Vim Y F Y Y Y Y Y Y Y Y Y Y Y
VS Code/CodiumYFYYYYYYYYYY Y module Python pour codium/VSC
WingIde Y C Y Y*Y Y Y Y Y Y Y Y Y
Zeus W C Y Y Y Y Y Y
Nom CP C/FACMLSPDEMSCSIBMLNUMLCFCTUTUIDDBRADcomments

Acronymes:

  • Y - Yes
  • 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 applications et librairies pour créer des interfaces graphiques pour python :

  • Tkinter (librairie python)
  • QT Creator (logiciel) ou pyQT (librairie python) pour des interfaces en QT

Installation

Python 3 et Ubuntu

Depuis Ubuntu bionic 18.04, Python 3 est installé par défaut et est accessible via la commande python3.

Actuellement, Ubuntu 24.04 est livrée avec Python 3.12.

Modules/dépendances

Il est souvent utile ou nécessaire d'ajouter des modules (bibliothèques) à l'installation de base. Ceci peut être fait via les suites d'outils anaconda ou 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 dépendances Python pip (commandes pip ou pip3 qui utilisent le dépôt PyPI).

Pour installer (sous-commande install) par exemple le module pyserial (communication série) :

pip install pyserial

Pour lister (sous-commande list) les modules installés :

pip list

On peut ajouter l'option --local pour ne lister que ceux installés localement (dans le répertoire des binaires personnels $USER/.local/bin).
Sans cetteoption, la liste est longue. Un pipe avec grep peut donc s'avérer utile !

pip list | grep pyserial

Les dépendances (modules et autres métadonnées) peuvent être définies dans un fichier

  • requirements.txt # qu'on installe avec : pip install -r requirement.txt

ou mieux encore dans un fichier

  • pyproject.toml 3) qui permet de définir des sections (debug, dev…) et des métadonnées.

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 et Jupyter (page dédiée à cet outils) :

pip3 install jupyter
pip3 install ipython

Anaconda

La société Anaconda a fait des changements de licences qui peuvent entraîner la nécessité de payer pour accéder à certaines librairies.
Il existe plusieurs alternatives, notamment :

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)

Enfin, il faut surtout désactiver le canal "defaults" des environnements conda en mettant "nodefaults" à la place (par exemple : https://github.com/pierrepo/env-logiciels-bioinfo/blob/main/cours/rnaseq.yml). En effet, conda va toujours utiliser ce canal "defaults" qui appartient à Anaconda.

Anaconda est une suite d'outils (plus de 200 paquets et plus de 500Mo) allant de l'éditeur Spyder au framework Qt et PyQt, en passant par 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 liste des paquets installés est visualisable via anaconda-navigator puis Environnements. En cas de soucis, pensez à mettre à jour le navigateur:

conda update anaconda-navigator 

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:

Miniconda

Également basé sur le canal Anaconda. Les réserves exprimées ci-dessus sont donc également vraies pour 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.

Utilisation

L'utilisation de Python dépend évidemment de la ressource choisie (distribution, virtualisation…).

De nombreuses ressources sont disponibles sur le web pour apprendre à programmer en Python, reportez-vous aux liens de cette page.

Débugger avec PDB

Si vous êtes débutant, vous préférerez sans doute l'utilisation d'un IDE tel que spyder, eclipse, ou pycharm.

PDB est une solution de débuggage en ligne de commande similaire à GDB.

Pour pouvoir l'utiliser, il suffit d'ajouter en début de votre fichier python la ligne :

import pdb; pdb.set_trace()   # pour débugger… en ligne de commande !-) 

Le pdb.set_trace() peut-être mis plus tard dans le code !

Reportez-vous à la doc de GDB ou à la documentation officielle pour débugger (point d'arrêt, raccourcis…).

Voir aussi

Pages liées à Python

2)
dont la société, Astral a été racheté par OpenAI en mars 2026 !