| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| python [Le 29/09/2023, 11:30] – …contributeurs bcag2 | python [Le 24/03/2026, 18:56] (Version actuelle) – [Les modules/dépendances] mise en forme | liens | détails krodelabestiole |
|---|
| {{tag>programmation}} | {{tag>programmation}} |
| |
| ---- | {{ https://raw.githubusercontent.com/python/cpython/refs/heads/main/PC/icons/logox128.png?96|Logo de Python}} |
| | ====== Langage de programmation Python ====== |
| |
| {{ python.png?130nolink| Logo 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]]. |
| ====== 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. | 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]]. |
| |
| Pour plus d'information sur la programmation en Python, référez-vous au portail [[:programmation#python|Programmation]]. \\ | **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]]''. |
| 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) ==== | <note> |
| | Pour plus d'information sur la programmation en Python, référez-vous au portail //[[:programmation#python|Programmation]]//. |
| | </note> |
| |
| Les logiciels pour éditer des scripts python : | ===== 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é. |
| | |
| | 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) : |
| | |
| | ==== venv ==== |
| | |
| | **[[:tutoriel:python-virtualenv|virtualenv]]** est la solution de base, fournie par l'écosystème Python. |
| | |
| | ==== 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. |
| | |
| | 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> |
| | où ''dependence'' est une bibliothèque **Python** dont dépend ''script.py''. |
| | |
| | ==== Pixi ==== |
| | |
| | **[[https://pixi.prefix.dev/latest/|Pixi]]** est un autre gestionnaire de dépendances très répandu, qui gère d'autres langages que le Python. |
| | |
| | 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 : |
| | <code bash> |
| | curl -fsSL https://pixi.sh/install.sh | sh |
| | # ou avec wget : |
| | wget -qO- https://pixi.sh/install.sh | sh |
| | </code> |
| | Facile à mettre à jour en relançant l'installation ou |
| | <code bash> |
| | pixi self-update |
| | </code> |
| | |
| | ==== uv ==== |
| | |
| | **[[https://docs.astral.sh/uv/|uv]]**((dont la société, Astral a été racheté par OpenAI en mars 2026 !)) est aussi un gestionnaire de dépendance très répandu, rapide (développé en [[wpfr>Rust_(langage)|Rust]]). |
| | |
| | ===== Applications ===== |
| | |
| | ==== Éditeurs Python ==== |
| | |
| | Les applications ([[:IDE]]) 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^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^ | ^ 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 | | | | | | | | | BlackAdder |**Y** | C | | | | | |Y | | | |Y | | | | | | | |
| |[[bluefish|BlueFish]] |**L** | | | | | | | | | | | | | | | | | | | [[:BlueFish]] |**L** | | | | | | | | | | | | | | | | | | |
| |Boa Constructor|**Y** | F |Y | |Y |Y | |Y |Y |Y | Y |Y |Y | | | | | | | Boa Constructor |**Y** | F |Y | |Y |Y | |Y |Y |Y | Y |Y |Y | | | | | | |
| | ConTEXT |W | C | | | | | | | | | | | | | | | | | | ConTEXT |W | C | | | | | | | | | | | | | | | | | |
| |DABO |**Y** | | | | | | | | | | | | | | | | | | | DABO |**Y** | | | | | | | | | | | | | | | | | | |
| | DreamPie | | F | | | | | | | | | | | | | | | | | | DreamPie | | F | | | | | | | | | | | | | | | | | |
| |Dr.Python | | F | | | |Y | | | | | | | | | | | | | | | Dr.Python | | F | | | |Y | | | | | | | | | | | | | |
| |Editra |**Y** | F |Y | Y | | |Y |Y |Y |Y | |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 | | | | | | [[: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é| | | [[: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 | | | | | | | | | | | | | | | | | | | E-Texteditor |W | | | | | | | | | | | | | | | | | | |
| |[[geany|Geany]] |**Y** | F |Y*| Y | | | |Y |Y |Y | |Y | | | | | |* very limited| | | [[:Geany]] |**Y** | F |Y*| Y | | | |Y |Y |Y | |Y | | | | | |*très limité| |
| |[[gedit|Gedit]] |**Y** | F |Y¹| Y | | | |Y |Y |Y | | |Y²| | | | |¹ with plugin ² sort of| | | [[:Gedit]] |**Y** | F |Y¹| Y | | | |Y |Y |Y | | |Y²| | | | |¹avec extension ²plus ou moins| |
| | [[idle|Idle]] |**Y** | F |Y | | | | | | | | | | | | | | | | | [[:Idle]] |**Y** | F |Y | | | | | | | | | | | | | | | | |
| | [[jedit|JEdit]] |**Y** | F | | Y | | | | |Y |Y | |Y | | | | | | | | [[:JEdit]] |**Y** | F | | Y | | | | |Y |Y | |Y | | | | | | | |
| | [[kdevelop|KDevelop]] |**Y** | F | | Y | | |Y |Y |Y |Y | |Y | | | | | | | | [[: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^ | ^ 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 | | | | [[: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 | | | [[:NetBeans]] |**Y** | F |Y | Y |Y | |Y |Y |Y |Y | Y |Y |Y |Y | | | Y | | |
| | NotePad++ |W | F | | Y | | | | | |Y | | | | | | | | | | NotePad++ |W | F | | Y | | | | | |Y | | | | | | | | | |
| | Pfaide |W | C |Y | Y | | | |Y |Y |Y | |Y |Y | | | | | | | Pfaide |W | C |Y | Y | | | |Y |Y |Y | |Y |Y | | | | | | |
| | PIDA |**L**W| F |Y | Y | | | |Y |Y |Y | |Y | | | | | |VIM based | | PIDA |**L**W| F |Y | Y | | | |Y |Y |Y | |Y | | | | | |basé sur [[:VIM]]| |
| | PTVS |W | F |Y | Y |Y |Y |Y |Y |Y |Y | |Y | | |Y* | | Y |*WPF bsed | | 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 | | [[: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 | | | | | | 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 | | | | | | Pyscripter |W | F |Y | |Y |Y | |Y | |Y | | |Y |Y | | | | | |
| | PythonWin |W | F |Y | |Y | | |Y |Y | | |Y | | | | | | | | PythonWin |W | F |Y | |Y | | |Y |Y | | |Y | | | | | | | |
| | [[scite|SciTE]] |**Y** | F | | Y | |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 | | | | | | | ScriptDev |W | C |Y | Y |Y |Y | |Y |Y |Y | |Y |Y | | | | | | |
| | SPE | | F |Y | | | | | | | | Y | | | | | | | | | SPE | | F |Y | | | | | | | | Y | | | | | | | | |
| | [[spyder|Spyder/spyderlib]] |**Y** | F |Y | |Y |Y | |Y |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 | | [[:sublime-text|Sublime Text]]|**Y**|C|Y|Y||| |Y |Y |Y | | |Y | | | | |extension Python| |
| | TextMate |M | | | Y | | | |Y |Y |Y | |Y |Y | | | | | | | TextMate |M | | | Y | | | |Y |Y |Y | |Y |Y | | | | | | |
| | 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]] |**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 | | [[: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]]| |
| | Zeus |W | C | | | | |Y |Y |Y |Y | |Y |Y | | | | | | | WingIde |**Y** | C |Y | Y*|Y |Y |Y |Y |Y |Y | |Y |Y |Y | | | |*support de C |
| ^Nom^CP^C/F^AC^MLS^PD^EM^SC^SI^BM^LN^UML^CF^CT^UT^UID^DB^RAD^comments^ | | 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: | Acronymes: |
| * CP - Cross Platform — { multi-plateformes } | * Y - Yes |
| * C - Commercial — { sous licence commerciale } | * CP - Cross Platform — { multi-plateformes } |
| * F - Free — { sous licence gratuite } | * C - Commercial — { sous licence commerciale } |
| * AC - Automatic Code-completion — { finalisation automatique du code } | * F - Free — { sous licence gratuite } |
| * MLS - Multi-Language Support — { intégration multilingue } | * AC - Automatic Code-completion — { finalisation automatique du code } |
| * PD - Integrated Python Debugging { interface de débogage du code Python intégrée } | * MLS - Multi-Language Support — { intégration multilingue } |
| * EM - ErrorMarkup — { procédure de balisage d'erreurs } | * PD - Integrated Python Debugging { interface de débogage du code Python intégrée } |
| * SC - Source Control integration — { procédure de contrôle du code source intégrée } | * EM - ErrorMarkup — { procédure de balisage d'erreurs } |
| * SI - Smart Indent — { formatage intelligent du code source } | * SC - Source Control integration — { procédure de contrôle du code source intégrée } |
| * BM - Bracket Matching — { fermeture automatique des différentes parenthèses } | * SI - Smart Indent — { formatage intelligent du code source } |
| * LN - Line Numbering — { numérotation automatique des lignes de code } | * BM - Bracket Matching — { fermeture automatique des différentes parenthèses } |
| * UML - UML editing / viewing — { édition et visualisation du langage unifié de modélisation graphique } | * LN - Line Numbering — { numérotation automatique des lignes de code } |
| * CF - Code Folding — { procédure de repli synthétique du code source } | * UML - UML editing / viewing — { édition et visualisation du langage unifié de modélisation graphique } |
| * CT - Code Templates — { modélisation/prototypage du code source } | * CF - Code Folding — { procédure de repli synthétique du code source } |
| * UT - Unit Testing — { tests des unités de commandes } | * CT - Code Templates — { modélisation/prototypage du code source } |
| * UID - GUI Designer (for example, Qt, Eric, ..) — { module de conception des interfaces graphiques dédiées à l'utilisateur } | * UT - Unit Testing — { tests des unités de commandes } |
| * DB - integrated database support — { intégration et gestion des bases de données } | * UID - GUI Designer (for example, Qt, Eric, ..) — { module de conception des interfaces graphiques dédiées à l'utilisateur } |
| * RAD - Rapid application development support — { gestion de la modélisation/du développement accélérés des applications } | * DB - integrated database support — { intégration et gestion des bases de données } |
| * L - Linux | * RAD - Rapid application development support — { gestion de la modélisation/du développement accélérés des applications } |
| * W - Windows | * L - Linux |
| * M - Mac | * W - Windows |
| | * 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: | |
| * QT Creator pour des interfaces en QT | |
| |
| Terminal | 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 ===== | ===== 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> 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> | |
| |
| ==== 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 !. | |
| |
| === Ubuntu 16.04 === | ==== Les modules/dépendances ==== |
| |
| 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. | 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]]). |
| |
| Pour installer Python 3.6 avec Ubuntu 16.04, il faut ajouter un ppa : | Pour installer (sous-commande ''[[man>pip3-install|install]]'') par exemple le module [[https://pypi.org/project/pyserial/|pyserial]] (communication série) : |
| * soit ''jonathonf/python-3.6'' | <code bash>pip install pyserial</code> |
| * soit ''deadsnakes/ppa'' | Pour lister (sous-commande ''[[man>pip3-list|list]]'') les modules installés : |
| | <code bash>pip list</code> On peut ajouter l'option ''%%--%%local'' pour ne lister que ceux installés localement (dans le répertoire des [[:arborescence#binaires personnels]] ''[[:arborescence#binaires_personnels|$USER/.local/bin]]'').\\ |
| | Sans cetteoption, la liste est longue. Un //[[:pipe]]// avec ''[[man>grep]]'' peut donc s'avérer utile !<code bash>pip list | grep pyserial</code> |
| |
| Puis on installe Python 3.6. | Les dépendances (modules et autres métadonnées) peuvent être définies dans un fichier |
| | * ''requirements.txt'' |
| | 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. |
| |
| Les commandes complètes avec, par exemple, //jonathon// ppa : | ==== IDLE 3 ==== |
| |
| <code bash> | 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. |
| $ 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'' ! | ==== iPython/Jupyter ==== |
| |
| ==== Les modules ==== | Voici les instructions pour installer [[wpfr>IPython]] et [[:jupyter|Jupyter (page dédiée à cet outils)]] : |
| 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> | |
| Pour lister les modules installés : | |
| <code bash>pip list</code> | |
| 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 ==== | |
| | |
| Voici les instructions pour installer iPython (dans une version récente) sous 16.04, avec ''pip'' : \\ | |
| (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> |
| |
| ==== Anaconda ==== | ==== Anaconda ==== |
| | |
| | <note warning>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 :\\ |
| | * Micromamba : https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html |
| | * 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) |
| | |
| | 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.</note> |
| 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//…\\ | 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:\\ | Pour l'installer, reportez-vous à la page dédiée sur le site officiel:\\ |
| |
| * [[hplip#mot_de_passe_root_demande|hplip]] | * [[hplip#mot_de_passe_root_demande|hplip]] |
| | |
| ==== Miniconda ==== | ==== Miniconda ==== |
| Pour limiter le nombre de paquets ou n'installer que le nécessaire, il existe aussi [[miniconda|Miniconda]] qui n'installe que le gestionnaire de paquet //conda// | |
| | É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 ===== | ===== 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 ==== | L'utilisation de Python dépend évidemment de la ressource choisie ([[wpfr>Python_(langage)#Distributions|distribution]], [[#Environnements virtuels/isolés|virtualisation]]...). |
| <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: | De nombreuses ressources sont disponibles sur le web pour apprendre à programmer en Python, reportez-vous aux [[#voir_aussi|liens de cette page]]. |
| <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…) | |
| |
| | ==== Débugger avec PDB ==== |
| |
| ===== Logiciels liés à Python ===== | <note tip> |
| | Si vous êtes débutant, vous préférerez sans doute l'utilisation d'un [[#logiciel_editeur_python_ide|IDE]] tel que spyder, eclipse, ou pycharm. |
| | </note> |
| |
| Voici la liste des pages de la documentation présentant les logiciels liés au langage Python : | [[https://docs.python.org/3/library/pdb.html|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 : |
| | <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 ! |
| | |
| | Reportez-vous à la doc de [[:GDB]] ou à [[https://docs.python.org/3/library/pdb.html|la documentation officielle]] pour débugger (point d'arrêt, raccourcis…). |
| |
| {{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://github.com/python/cpython|GitHub]] |
| * [[https://www.python.org/|Site officiel]] [en] | * [[https://www.afpy.org/|Association francophone Python]] |
| * [[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://wikipython.flibuste.net/|Wiki Python francophone]] |
| * [[http://python.lycee.free.fr/|Débuter avec Python au lycée]] [fr] | * //[[http://python.lycee.free.fr/|Débuter avec Python au lycée]]// |
| * [[https://frederic-lang.developpez.com/tutoriels/python/python-de-zero/|Tutoriel complet sur developpez.com]] [fr] | * [[https://frederic-lang.developpez.com/tutoriels/python/python-de-zero/|Tutoriel complet]] sur developpez.com |
| * [[https://www.fun-mooc.fr/courses/course-v1:UCA+107001+session01/about | MOOC python 3 Inria sur France Universités Numériques]] [fr] | * //[[https://openclassrooms.com/en/courses/7168871-apprenez-les-bases-du-langage-python|Apprenez les bases du langage Python]]// sur OpenClassrooms |
| * [[https://openclassrooms.com/en/courses/7168871-apprenez-les-bases-du-langage-python]] [fr] | * //[[http://www.jchr.be/python/manuel.htm|Introduction au langage Python3]]// |
| * [[http://www.jchr.be/python/manuel.htm]] [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) |
| * [[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//)** [[https://python.swaroopch.com/]] |
| * [[https://python.swaroopch.com/]] [en] | * **(//en//)** [[http://ipython.org/]] |
| * [[http://ipython.org/]] | * **(//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]] |
| * [[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] | * **(//en//)** **[[https://docs.astral.sh/uv/|uv]]**, gestion de projets et de paquets. |
| --------- | |
| |
| //Contributeurs : [[:utilisateurs:draco31.fr|draco31.fr]]; Traduction des acronymes, correction grammaticale [[:utilisateurs:eagle08|René Stoecklin]]; [[:utilisateurs:bcag2]]// | ==== Pages liées à Python ==== |
| | |
| | Voici la liste des pages de la documentation présentant les logiciels liés au langage Python : |
| | |
| | {{backlinks>.#!utilisateurs:}} |
| | |
| | ---- |
| | //[[:Contributeurs]] : [[:utilisateurs:draco31.fr|draco31.fr]], [[:utilisateurs:eagle08|René Stoecklin]], [[:utilisateurs:bcag2]], [[:utilisateurs:krodelabestiole]].// |