Installez et utilisez un paquet Python
Une fois que vous avez trouvé un paquet Python qui vous intéresse, vous pouvez utiliser la commande pip install <package>
pour l'installer. Nous utiliserons le paquet matplotlib
: un paquet permettant de dessiner des graphiques.
Créez un fichier appelé generate_graph.py
et écrivez-y ce code :
import matplotlib.pyplot as plt
plt.figure()
plt.plot([1, 2, 3, 4, 5])
plt.show()
Dans votre terminal, placez-vous dans le répertoire dans lequel vous avez créé le fichier (à l’aide de la commande cd
), puis exécutez la commande python generate_graph.py
. Si la commande s'exécute correctement et que le script génère un graphique, cela signifie que vous avez déjà installé le paquet matplotlib
.
Si le script ne s'exécute pas correctement, vous recevez probablement un message d'erreur semblable à celui-ci :
$ python generate_graph.py Error processing line 1 of /Users/george/anaconda3/lib/python3.7/site-packages/matplotlib-3.0.2-py3.7-nspkg.pth: Traceback (most recent call last): File "/Users/george/anaconda3/lib/python3.7/site.py", line 168, in addpackage exec(line) File "<string>", line 1, in <module> File "<frozen importlib._bootstrap>", line 580, in module_from_spec AttributeError: 'NoneType' object has no attribute 'loader' Remainder of file ignored Traceback (most recent call last): File "generate_graph.py", line 1, in <module> import matplotlib.pyplot as plt ModuleNotFoundError: No module named 'matplotlib'
Dans ce cas, vous devez installer le paquet matplotlib
à l'aide de pip install matplotlib
:
$ pip install matplotlib Collecting matplotlib Using cached https://files.pythonhosted.org/packages/4a/5c/ced2e398aad26b24a7beaa2b22830811dfc953c73a0b3b930e26c12d1d19/matplotlib-3.2.2-cp37-cp37m-macosx_10_9_x86_64.whl Requirement already satisfied: numpy>=1.11 in ./anaconda3/lib/python3.7/site-packages (from matplotlib) (1.18.4) Requirement already satisfied: kiwisolver>=1.0.1 in ./anaconda3/lib/python3.7/site-packages (from matplotlib) (1.0.1) Requirement already satisfied: python-dateutil>=2.1 in ./anaconda3/lib/python3.7/site-packages (from matplotlib) (2.7.5) Requirement already satisfied: cycler>=0.10 in ./anaconda3/lib/python3.7/site-packages (from matplotlib) (0.10.0) Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in ./anaconda3/lib/python3.7/site-packages (from matplotlib) (2.3.0) Requirement already satisfied: setuptools in ./anaconda3/lib/python3.7/site-packages (from kiwisolver>=1.0.1->matplotlib) (40.6.3) Requirement already satisfied: six>=1.5 in ./anaconda3/lib/python3.7/site-packages (from python-dateutil>=2.1->matplotlib) (1.12.0) Installing collected packages: matplotlib Successfully installed matplotlib-3.2.2
Maintenant, si vous essayez d'exécuter votre script generate_graph.py
à l'aide de python generate_graph.py
, le graphique suivant doit apparaître. 🧙♀️
![Graphique généré par le script](https://user.oc-static.com/upload/2020/09/11/15998517106504_Graphique%20g%C3%A9n%C3%A9r%C3%A9%20par%20le%20script.png)
Félicitations, vous avez correctement installé et utilisé votre premier paquet Python, matplotlib
. 👏
Pour vérifier votre installation de matplotlib
, utilisez la vidéo suivante :
Vérifiez quels paquets vous avez installés
Pour vérifier les paquets Python que vous avez installés, vous pouvez exécuter deux commandes différentes dans votre terminal : pip list
ou pip freeze
. pip list
répertorie tous les paquets que vous avez installés (et leurs dépendances) dans un format intelligible :
$ pip list Package Version Location ---------------------------------- --------- ------------------------------------------------------------ alabaster 0.7.12 anaconda-client 1.7.2 anaconda-navigator 1.9.6 anaconda-project 0.8.2 appnope 0.1.0 appscript 1.0.1 asn1crypto 0.24.0 aspy.yaml 1.3.0 astroid 2.1.0 astropy 3.1 atomicwrites 1.2.1 attrs 18.2.0 awscli 1.16.168 Babel 2.6.0 backcall 0.1.0 backports.os 0.1.1 backports.shutil-get-terminal-size 1.0.0 bcrypt 3.1.6 ...
J'ai raccourci le résultat ci-dessus en coupant après le paquet bcrypt
car cela prend trop de place, mais vous avez sans doute compris le principe ! pip freeze
répertorie les paquets que vous avez installés (mais pas leurs dépendances) dans un format adapté au stockage dans un fichier (souvent appelé fichier requirements.txt
), dont nous parlerons plus en détail ultérieurement. Démonstration :
$ pip freeze alabaster==0.7.12 anaconda-client==1.7.2 anaconda-navigator==1.9.6 anaconda-project==0.8.2 appnope==0.1.0 appscript==1.0.1 asn1crypto==0.24.0 aspy.yaml==1.3.0 astroid==2.1.0 astropy==3.1 atomicwrites==1.2.1 attrs==18.2.0 awscli==1.16.168 Babel==2.6.0 backcall==0.1.0 backports.os==0.1.1 backports.shutil-get-terminal-size==1.0.0 bcrypt==3.1.6 ...
Une autre commande intéressante avec pip
estpip show <package(s)>
, qui vous montre des informations utiles sur un ou plusieurs paquets que vous avez installés. Par exemple, pour avoir plus d'informations sur le paquet requests
, j'exécute la commande suivante :
$ pip show requests Name: requests Version: 2.23.0 Summary: Python HTTP for Humans. Home-page: https://requests.readthedocs.io Author: Kenneth Reitz Author-email: me@kennethreitz.org License: Apache 2.0 Location: /Users/george/anaconda3/lib/python3.7/site-packages Requires: urllib3, idna, certifi, chardet Required-by: Sphinx, conda, conda-build, anaconda-project, anaconda-client
Je peux utiliser pip show
pour obtenir des informations sur plusieurs paquets, en séparant les noms des paquets par des espaces :
$ pip show requests numpy pandas Name: requests Version: 2.23.0 Summary: Python HTTP for Humans. Home-page: https://requests.readthedocs.io Author: Kenneth Reitz Author-email: me@kennethreitz.org License: Apache 2.0 Location: /Users/george/anaconda3/lib/python3.7/site-packages Requires: idna, certifi, chardet, urllib3 Required-by: Sphinx, conda, conda-build, anaconda-project, anaconda-client --- Name: numpy Version: 1.18.4 Summary: NumPy is the fundamental package for array computing with Python. Home-page: https://www.numpy.org Author: Travis E. Oliphant et al. Author-email: None License: BSD Location: /Users/george/anaconda3/lib/python3.7/site-packages Requires: Required-by: tables, seaborn, scikit-learn, PyWavelets, pytest-doctestplus, pytest-arraydiff, patsy, pandas, odo, numexpr, numba, mkl-random, mkl-fft, matplotlib, h5py, datashape, Bottleneck, bokeh, bkcharts, astropy --- Name: pandas Version: 0.23.4 Summary: Powerful data structures for data analysis, time series, and statistics Home-page: http://pandas.pydata.org Author: None Author-email: None License: BSD Location: /Users/george/anaconda3/lib/python3.7/site-packages Requires: python-dateutil, pytz, numpy Required-by: seaborn, odo
Si vous voulez en savoir un peu plus sur l'installation de paquets et leur utilisation dans des scripts, ou si vous n'avez pas réussi à utiliser pip
pour afficher ou répertorier vos paquets, la vidéo suivante vous donnera quelques indications supplémentaires :
Exercice
Vous travaillez en tant que spécialiste en marketing dans une entreprise ! 😎
Votre directeur a récemment essayé d'apprendre Python, car il pense pouvoir l'utiliser pour automatiser certaines tâches répétitives. Il vous a envoyé un script Python qu'il veut que vous essayiez d'exécuter, mais il vient d'entrer en réunion et n'est pas disponible.
Téléchargez ce script et essayez de l'exécuter : p1c2s2_script.py
S'il s'exécute correctement dès la première fois, c'est parfait, vous n'avez pas besoin d'essayer autre chose ! Cependant, si ce n'est pas le cas, vous allez devoir rechercher dans PyPI les paquets que vous devez installer, puis exécuter le script correctement !
En résumé
!pip install <package>!
permet d'installer des paquets Python à partir de la ligne de commande.Une fois que vous avez installé un paquet Python, vous pouvez utiliser la commande
!import!
pour l'importer dans un script Python et utiliser ses fonctionnalités.!pip!
dispose de différentes commandes qui vous permettent de voir les paquets actuellement installés.
Maintenant que vous êtes prêt à installer et à utiliser des paquets Python, examinons de plus près les différentes méthodes d'installation des paquets et modules, et à quel moment les utiliser.