.. blogpost:: :title: Mettre à jour un module sous Windows :keywords: update, pip, Windows :date: 2016-11-15 :categories: module :lid: blog-installer-module Comme il n'existe pas de compilateur par défaut sous Windows, l'installation ou la mise à jour des modules requiert de passer toujours par les mêmes étapes. Si la distribution `Anaconda `_ est installée et que le module est maintenu, il faut toujours exécuter : :: conda install Et : :: conda update Si le module n'est pas maintenu ou que la distribution `Anaconda `_ n'est pas utilisé, il existe trois cas possibles. #. Le module est écrit en Python pur (exemple : `seaborn `_). #. Le module contient du C++ et est compilé par le site `Unofficial Windows Binaries for Python Extension Packages `_ (exemple : `numpy `_). #. Le module contient du C++ et n'est pas compilé par le site `Unofficial Windows Binaries for Python Extension Packages `_ : (exemple : `xgboost `_). Le **cas 1** est simple si le module dépend de modules tous écrits en Python (voir plus bas). Il suffit d'exécuter : :: pip install Ou : :: pip install --upgrade Si on souhaite installer ou mettre à jour le module sans les dépendances, il faut ajouter l'option ``--no-deps``. Cette option est indispensable lorsqu'on met à jour un module qui prend une dépendance sur un autre module qui contient du C++ comme `seaborn `_. La mise à jour de ce module entraîne la mise à jour de `numpy `_ qui échoue car elle requiert un compilateur C++ et `Intel® Math Kernel Library `_. NumPy, a fundamental package needed for scientific computing with Python. Numpy+MKL is linked to the Intel® Math Kernel Library and includes required DLLs in the numpy.core directory. Le **cas 2** est simple aussi dans la mesure où il suffit de télécharger le fichier *.whl* depuis le site `Unofficial Windows Binaries for Python Extension Packages `_. Une fois ce fichier téléchargé, il suffit d'exécuter : :: pip install La mise à jour se fait de la même façon : :: pip install Le **cas 3** est plus complexe. Il requiert que le module soit compilé. `Pypi `_ propose parfois une version compilée comme pour `scipy `_ mais il faut vérifier qu'il existe une version pour la distribution de Python installée. Il existe deux sous-cas. **Cas 3.1 :** le site du module explique comment compiler le module sous Windows. C'est le cas de xgboost. Lire `Build xgboost on Windows `_. **Cas 3.2 :** le module peut être compilé avec les instructions standard. Exemple : `Build param on Windows `_. **Que fait le module pymyinstall ?** Le module `pymyinstall `_ peut installer ou mettre à jour une `liste de modules `_ utilisée pour mes enseignements. C'est un mélange de module Python (cas 1), de module C++ accessibles depuis le site `Unofficial Windows Binaries for Python Extension Packages `_ ou non (cas 3). Dans ce dernier cas, le module va chercher la dernière version compilé sur le site *www.xavierdupre.fr*. Pour s'en servir : :: pymy_install Ou pour mettre à jour : :: pymy_update Les instructions pour compiler certains modules compliqués sont décrites sur ce `blog `_.