Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
python [Le 28/08/2018, 13:51] 86.111.122.102 [Python 2] |
python [Le 17/10/2024, 12:09] (Version actuelle) bcag2 [Anaconda] licences payantes pour certains usages |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
====== 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 placé sous 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 ===== | ===== Programmer en Python ===== | ||
- | 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, 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]]. | + | 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) ==== | ==== Logiciel éditeur Python (IDE) ==== | ||
Ligne 43: | Ligne 43: | ||
| PIDA |**L**W| F |Y | Y | | | |Y |Y |Y | |Y | | | | | |VIM based | | 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 | | 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 | + | | [[: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|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 | | | | | ||
Ligne 60: | Ligne 60: | ||
Acronymes: | Acronymes: | ||
- | * CP - Cross Platform | + | * CP - Cross Platform — { multi-plateformes } |
- | * C - Commercial | + | * C - Commercial — { sous licence commerciale } |
- | * F - Free | + | * F - Free — { sous licence gratuite } |
- | * AC - Automatic Code-completion | + | * AC - Automatic Code-completion — { finalisation automatique du code } |
- | * MLS - Multi-Language Support | + | * MLS - Multi-Language Support — { intégration multilingue } |
- | * PD - Integrated Python Debugging | + | * PD - Integrated Python Debugging { interface de débogage du code Python intégrée } |
- | * EM - ErrorMarkup | + | * EM - ErrorMarkup — { procédure de balisage d'erreurs } |
- | * SC - Source Control integration | + | * SC - Source Control integration — { procédure de contrôle du code source intégrée } |
- | * SI - Smart Indent | + | * SI - Smart Indent — { formatage intelligent du code source } |
- | * BM - Bracket Matching | + | * BM - Bracket Matching — { fermeture automatique des différentes parenthèses } |
- | * LN - Line Numbering | + | * LN - Line Numbering — { numérotation automatique des lignes de code } |
- | * UML - UML editing / viewing | + | * UML - UML editing / viewing — { édition et visualisation du langage unifié de modélisation graphique } |
- | * CF - Code Folding | + | * CF - Code Folding — { procédure de repli synthétique du code source } |
- | * CT - Code Templates | + | * CT - Code Templates — { modélisation/prototypage du code source } |
- | * UT - Unit Testing | + | * UT - Unit Testing — { tests des unités de commandes } |
- | * UID - GUI Designer (for example, Qt, Eric, ..) | + | * UID - GUI Designer (for example, Qt, Eric, ..) — { module de conception des interfaces graphiques dédiées à l'utilisateur } |
- | * DB - integrated database support | + | * DB - integrated database support — { intégration et gestion des bases de données } |
- | * RAD - Rapid application development support | + | * RAD - Rapid application development support — { gestion de la modélisation/du développement accélérés des applications } |
* L - Linux | * L - Linux | ||
* W - Windows | * W - Windows | ||
Ligne 85: | Ligne 85: | ||
* QT Creator pour des interfaces en QT | * QT Creator pour des interfaces en QT | ||
+ | Terminal | ||
===== 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. //(Plus pour Bionic, 18.04?)// | ||
- | |||
==== Python 3 et Ubuntu ==== | ==== 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. | + | === Ubuntu 18.04 et suivant === |
- | Pour installer Python 3.6 avec Ubuntu 16.04, il faut ajouter un ppa : | + | Ubuntu [[:18.04]] est livrée avec //Python 3.6// par défaut, il suffit de taper ''python3'' pour l'invoquer.\\ |
- | * soit ''jonathonf/python-3.6'' | + | Sous [[:focal]] c'est //Python 3.8//, accessible avec ''python'', python 2 n'étant plus installé par défaut !. |
- | * soit ''deadsnakes/ppa'' | + | |
- | Puis on installe Python 3.6. | + | ==== 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. | ||
- | Les commandes complètes avec, par exemple, //jonathon// ppa : | + | <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> |
- | <code> | + | ==== Les modules ==== |
- | $ sudo add-apt-repository ppa:jonathonf/python-3.6 | + | 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) |
- | $ sudo apt update | + | <code bash>pip install pyserial</code> |
- | $ sudo apt install python3.6 | + | Pour lister les modules installés : |
- | </code> | + | <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> | |
- | 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 ==== | ==== 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. | 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. | ||
Ligne 158: | Ligne 112: | ||
Voici les instructions pour installer iPython (dans une version récente) sous 16.04, avec ''pip'' : \\ | Voici les instructions pour installer iPython (dans une version récente) sous 16.04, avec ''pip'' : \\ | ||
(la première ligne installe pip3) | (la première ligne installe pip3) | ||
- | <code> | + | <code bash> |
$ sudo apt install python3-pip | $ sudo apt install python3-pip | ||
$ pip3 install --upgrade pip | $ pip3 install --upgrade pip | ||
Ligne 166: | Ligne 120: | ||
==== 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 | ||
+ | * 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:\\ | ||
Ligne 172: | Ligne 134: | ||
<code>conda update anaconda-navigator </code> | <code>conda update anaconda-navigator </code> | ||
+ | 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: | ||
+ | |||
+ | * [[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 [[https://conda.io/miniconda.html|Miniconda]] qui n'installe que le gestionnaire de paquet //conda// | + | 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// |
===== Utilisation ===== | ===== Utilisation ===== | ||
Ligne 201: | Ligne 166: | ||
* [[wpfr>Python_(langage)|Python sur wikipedia]] [fr] | * [[wpfr>Python_(langage)|Python sur wikipedia]] [fr] | ||
- | * [[http://www.afpy.org/|Association francophone Python]] [fr] | + | * [[https://www.afpy.org/|Association francophone Python]] [fr] |
* [[http://wikipython.flibuste.net/|Wiki Python francophone]] [fr] | * [[http://wikipython.flibuste.net/|Wiki Python francophone]] [fr] | ||
- | * [[http://www.python.org/|Site officiel]] [en] | + | * [[https://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] | + | * [[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]] [fr] | * [[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]] [fr] | ||
* [[https://www.fun-mooc.fr/courses/course-v1:UCA+107001+session01/about | MOOC python 3 Inria sur France Universités Numériques]] [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] | + | * [[https://openclassrooms.com/en/courses/7168871-apprenez-les-bases-du-langage-python]] [fr] |
* [[http://www.jchr.be/python/manuel.htm]] [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) | + | * [[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) |
- | * [[http://www.swaroopch.com/notes/python/]] [en] | + | * [[https://python.swaroopch.com/]] [en] |
- | * [[http://www.esi.umontreal.ca/~mousseau/phy1234/notes/notes_1.html]] [fr] | + | |
* [[http://ipython.org/]] | * [[http://ipython.org/]] | ||
+ | * [[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] | ||
--------- | --------- | ||
- | //[[:utilisateurs:draco31.fr|draco31.fr]] Le 25/06/2010, 22:23// | + | //Contributeurs : [[:utilisateurs:draco31.fr|draco31.fr]]; Traduction des acronymes, correction grammaticale [[:utilisateurs:eagle08|René Stoecklin]]; [[:utilisateurs:bcag2]]// |