| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| python [Le 24/03/2026, 18:56] – [Les modules/dépendances] mise en forme | liens | détails krodelabestiole | python [Le 26/07/2026, 02:24] (Version actuelle) – réorganisation krodelabestiole |
|---|
| {{tag>programmation}} | {{tag>programmation}} |
| |
| {{ https://raw.githubusercontent.com/python/cpython/refs/heads/main/PC/icons/logox128.png?96|Logo de Python}} | {{ https://raw.githubusercontent.com/python/cpython/refs/heads/main/PC/icons/logo.svg?96|Logo de Python}} |
| ====== Langage de programmation Python ====== | ====== Langage de programmation Python ====== |
| |
| **[[wpfr>Python_(langage)|Python]]** est un langage de programmation interprété, [[wpfr>Programmation_orientée_objet|orienté objet]], dont l'utilisation va des scripts systèmes aux [[:web#applications web]]. | **[[wpfr>Python_(langage)|Python]]** est un langage de programmation [[wpfr>Interprète_(informatique)|interprété]], [[wpfr>Programmation_orientée_objet|orienté objet]], qui permet de développer toutes sortes de projets, de scripts simples aux [[:web#applications web]]. Il est en outre utilisé par de nombreux outils [[:système]] d'Ubuntu. |
| |
| Il est régi par une licence libre proche de la licence BSD et fonctionne sur la plupart des plateformes. | Il est [[wpfr>logiciel libre|libre]] et fonctionne sur la plupart des plateformes. |
| |
| Par défaut, **Python** est installé sur Ubuntu. Saisir ''[[man>python3]]'' dans un [[:terminal]] donne donc accès à l'invite de commande Python.\\ | **Python** est installé par défaut 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]]. | Pour connaître la version installée, entrer la [[:commande shell|commande]] ''python3 -V''. |
| |
| **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]]''. | **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 [[https://pypi.org/|PyPI]] est peuvent être gérées avec ''[[#pip3]]''. |
| |
| <note> | <note> |
| Pour plus d'information sur la programmation en Python, référez-vous au portail //[[:programmation#python|Programmation]]//. | Pour plus d'information sur la programmation en Python, voir le portail //[[:programmation#python|Programmation]]//. |
| </note> | </note> |
| |
| ===== Environnements virtuels/isolés ===== | ===== 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 ''[[man>python3]]''), ou ''[[man>pip3]]'', son gestionnaire de dépendances associé. | 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 ''[[man>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 //[[:docker|containers]]//, en plus simple) : | 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 //[[:docker|containers]]//, en plus simple) . Certaines se présentent directement sous la forme de [[#gestionnaires de dépendances]]. |
| |
| ==== venv ==== | ==== venv ==== |
| |
| **[[:tutoriel:python-virtualenv|virtualenv]]** est la solution de base, fournie par l'écosystème Python. | **[[:tutoriel:python-virtualenv|virtualenv]]** est la solution de base, fournie par l'écosystème Python. |
| | |
| | ===== Gestionnaires de dépendances ===== |
| | |
| | Un [[:gestionnaire_de_paquets|gestionnaire de dépendance]] permet d'installer, mettre à jour, ou désinstaller des bibliothèques logicielles, à la manière des [[:paquet|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 **[[wpfr>Pip_(gestionnaire_de_paquets)|pip]]**, ou désormais plus exactement **pip3** : |
| | |
| | ==== pip3 ==== |
| | |
| | **[[wpfr>Pip_(gestionnaire_de_paquets)|pip3]]** permet de gérer l'installation de dépendances **Python** depuis le dépôt [[https://pypi.org/|PyPI]]), ainsi que leur mise à jour ou leur désinstallation. |
| | |
| | Il est installé par défaut sur Ubuntu. Il est fournit par le [[:paquet]] ''[[apt>python3-pip]]''. |
| | |
| | On peut l'utiliser avec la commande ''[[man>pip3]]'' : |
| | pip3 --help |
| | permet d'afficher la liste et la description des sous-commandes disponibles.\\ |
| | La sous-commande ''[[man>pip3-install|install]]'' permet par exemple d'installer une dépendance. |
| | |
| | <note>Pour la gestion des dépendances avec **pip**, voir le chapitre //[[#Modules/dépendances]]// ci-dessous.</note> |
| |
| ==== PipX ==== | ==== PipX ==== |
| |
| **[[https://github.com/pypa/pipx|PipX]]** permet de remplacer [[https://pypi.org/project/pip/|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. | **[[https://github.com/pypa/pipx|PipX]]** permet de remplacer [[https://pypi.org/project/pip/|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**, [[:deb#installer un paquet deb|installer le paquet]] ''[[apt>pipx]]''. |
| |
| Pour lancer un script local incluant une dépendance avec ''[[man>pipx]]'', la commande sera par exemple : | Pour lancer un script local incluant une dépendance avec ''[[man>pipx]]'', la commande sera par exemple : |
| <code bash>pipx run --spec dependence python3 script.py</code> | <code bash>pipx run --spec dependence python3 script.py</code> |
| où ''dependence'' est une bibliothèque **Python** dont dépend ''script.py''. | où ''dependence'' est une bibliothèque **Python** dont dépend ''script.py''. |
| | |
| | En dehors de ces fonctionnalités spécifiques, ''[[man>pipx]]'' s'utilise de manière relativement similaire à ''[[man>pip3]]''. |
| |
| ==== Pixi ==== | ==== Pixi ==== |
| Actuellement, Ubuntu [[:noble|24.04]] est livrée avec **Python 3.12**. | Actuellement, Ubuntu [[:noble|24.04]] est livrée avec **Python 3.12**. |
| |
| ==== Les modules/dépendances ==== | ==== 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 [[: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 dépendances Python [[wpfr>Pip_(gestionnaire_de_paquets)|PIP]] (commandes ''[[man>pip]]'' ou ''[[man>pip3]]'' qui utilisent le dépôt [[https://pypi.org/|PyPI]]). | 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 [[: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 dépendances Python [[#pip]] (commandes ''[[man>pip]]'' ou ''[[man>pip3]]'' qui utilisent le dépôt [[https://pypi.org/|PyPI]]). |
| |
| Pour installer (sous-commande ''[[man>pip3-install|install]]'') par exemple le module [[https://pypi.org/project/pyserial/|pyserial]] (communication série) : | Pour installer (sous-commande ''[[man>pip3-install|install]]'') par exemple le module [[https://pypi.org/project/pyserial/|pyserial]] (communication série) : |
| |
| Les dépendances (modules et autres métadonnées) peuvent être définies dans un fichier | Les dépendances (modules et autres métadonnées) peuvent être définies dans un fichier |
| * ''requirements.txt'' | * ''requirements.txt # qu'on installe avec : pip install -r requirement.txt'' |
| ou mieux encore dans un fichier | ou mieux encore dans un fichier |
| * ''pyproject.toml'' ((défini dans la [[https://peps.python.org/pep-0621/|PEP-0621]], cf. [[https://packaging.python.org/en/latest/specifications/pyproject-toml/]])) qui permet de définir des sections (''debug'', ''dev''…) et des métadonnées. | * ''pyproject.toml'' ((défini dans la [[https://peps.python.org/pep-0621/|PEP-0621]], cf. [[https://packaging.python.org/en/latest/specifications/pyproject-toml/]])) qui permet de définir des sections (''debug'', ''dev''…) et des métadonnées. |