Recherche…


Introduction

pip est le gestionnaire de paquets le plus utilisé pour Python Package Index, installé par défaut avec les versions récentes de Python.

Syntaxe

  • pip <command> [options] où <command> est l'un des suivants:
    • installer
      • Installer des paquets
    • désinstaller
      • Désinstaller des packages
    • gel
      • Sortie des packages installés dans le format des exigences
    • liste
      • Liste des paquets installés
    • montrer
      • Afficher des informations sur les packages installés
    • chercher
      • Rechercher des forfaits PyPI
    • roue
      • Construire des roues à partir de vos exigences
    • Zip *: français
      • Zip des paquets individuels (obsolète)
    • décompresser
      • Décompressez les paquets individuels (obsolètes)
    • paquet
      • Créer des pybundles (obsolètes)
    • Aidez-moi
      • Afficher l'aide pour les commandes

Remarques

Parfois, pip réalisera une compilation manuelle du code natif. Sous Linux, python choisira automatiquement un compilateur C disponible sur votre système. Reportez-vous au tableau ci-dessous pour obtenir la version requise de Visual Studio / Visual C ++ sous Windows (les nouvelles versions ne fonctionneront pas).

Version Python Version de Visual Studio Version de Visual C ++
2.6 - 3.2 Visual Studio 2008 Visual C ++ 9.0
3.3 - 3.4 Visual Studio 2010 Visual C ++ 10.0
3.5 Visual Studio 2015 Visual C ++ 14.0

Source: wiki.python.org

Installer des paquets

Pour installer la dernière version d'un package nommé SomePackage :

$ pip install SomePackage

Pour installer une version spécifique d'un package:

$ pip install SomePackage==1.0.4

Pour spécifier une version minimale à installer pour un package:

$ pip install SomePackage>=1.0.4

Si les commandes montrent une autorisation refusée, une erreur sur Linux / Unix, puis utilisez sudo avec les commandes


Installer à partir des fichiers d'exigences

$ pip install -r requirements.txt

Chaque ligne du fichier d'exigences indique quelque chose à installer, et comme les arguments à installer dans Pip, les détails sur le format des fichiers sont ici: Format du fichier d'exigences .

Après avoir installé le paquet, vous pouvez le vérifier en utilisant la commande freeze :

$ pip freeze

Désinstaller des packages

Pour désinstaller un package:

$ pip uninstall SomePackage

Pour lister tous les paquets installés en utilisant `pip`

Pour répertorier les packages installés:

$ pip list
# example output
docutils (0.9.1)
Jinja2 (2.6)
Pygments (1.5)
Sphinx (1.1.2)

Pour répertorier les packages obsolètes et afficher la dernière version disponible:

$ pip list --outdated
# example output
docutils (Current: 0.9.1 Latest: 0.10)
Sphinx (Current: 1.1.2 Latest: 1.1.3)

Forfaits de mise à niveau

Fonctionnement

$ pip install --upgrade SomePackage 

mettra à jour le paquet SomePackage et toutes ses dépendances. De plus, pip supprime automatiquement les anciennes versions du package avant la mise à niveau.

Pour mettre à jour pip lui-même, faites

$ pip install --upgrade pip

sur Unix ou

$ python -m pip install --upgrade pip

sur les machines Windows.

Mettre à jour tous les paquets obsolètes sous Linux

pip ne contient actuellement aucun indicateur permettant à un utilisateur de mettre à jour tous les paquets obsolètes en une seule fois. Cependant, ceci peut être accompli en combinant des commandes dans un environnement Linux:

pip list --outdated --local | grep -v '^\-e' | cut -d = -f 1  | xargs -n1 pip install -U

Cette commande prend tous les paquets de la virtual virtual locale et vérifie s'ils sont obsolètes. A partir de cette liste, il récupère le nom du package puis le transfère à une commande pip install -U . À la fin de ce processus, tous les packages locaux doivent être mis à jour.

Mettre à jour tous les paquets obsolètes sous Windows

pip ne contient actuellement aucun indicateur permettant à un utilisateur de mettre à jour tous les paquets obsolètes en une seule fois. Cependant, ceci peut être accompli en regroupant les commandes dans un environnement Windows:

for /F "delims= " %i in ('pip list --outdated --local') do pip install -U %i

Cette commande prend tous les paquets de la virtual virtual locale et vérifie s'ils sont obsolètes. A partir de cette liste, il récupère le nom du package puis le transfère à une commande pip install -U . À la fin de ce processus, tous les packages locaux doivent être mis à jour.

Créez un fichier requirements.txt de tous les packages du système

pip aide à créer des fichiers requirements.txt en fournissant l'option de freeze .

pip freeze > requirements.txt

Cela enregistrera une liste de tous les packages et de leur version installée sur le système dans un fichier nommé requirements.txt dans le dossier en cours.

Créer un fichier requirements.txt de packages uniquement dans la virtualenv actuelle

pip aide à créer des fichiers requirements.txt en fournissant l'option de freeze .

pip freeze --local > requirements.txt

Le paramètre --local affichera uniquement une liste de packages et de versions installés localement sur virtualenv. Les paquets globaux ne seront pas listés.

Utiliser une certaine version de Python avec pip

Si Python 3 et Python 2 sont tous deux installés, vous pouvez spécifier la version de Python que vous souhaitez que pip utilise. Ceci est utile lorsque les packages ne prennent en charge que Python 2 ou 3 ou lorsque vous souhaitez tester avec les deux.

Si vous souhaitez installer des packages pour Python 2, exécutez soit:

pip install [package]

ou:

pip2 install [package]

Si vous souhaitez installer des packages pour Python 3, procédez comme suit:

pip3 install [package]

Vous pouvez également appeler l'installation d'un package sur une installation python spécifique avec:

\path\to\that\python.exe -m pip install some_package # on Windows OR
/usr/bin/python25 -m pip install some_package # on OS-X/Linux

Sur les plates-formes OS-X / Linux / Unix, il est important de connaître la distinction entre la version système de python (dont la mise à niveau rend le système inutilisable) et la ou les versions utilisateur de python. Vous pouvez , selon votre tentative de mise à niveau , préfixer ces commandes avec sudo et entrer un mot de passe.

De même, sous Windows, certaines installations de python, en particulier celles qui font partie d'un autre package, peuvent être installées dans des répertoires système - ceux que vous devrez mettre à niveau à partir d'une fenêtre de commande fonctionnant en mode Admin - si Faites ceci c'est une très bonne idée de vérifier quelle installation python vous essayez de mettre à jour avec une commande telle que python -c"import sys;print(sys.path);" ou py -3.5 -c"import sys;print(sys.path);" vous pouvez également vérifier quel pip que vous essayez d'exécuter avec pip --version

Sous Windows, si python 2 et python 3 sont tous deux installés sur votre chemin et que votre python 3 est supérieur à 3,4, vous aurez probablement également le lanceur python py sur votre chemin système. Vous pouvez alors faire des trucs comme:

py -3 -m pip install -U some_package # Install/Upgrade some_package to the latest python 3
py -3.3 -m pip install -U some_package # Install/Upgrade some_package to python 3.3 if present
py -2 -m pip install -U some_package # Install/Upgrade some_package to the latest python 2 - 64 bit if present
py -2.7-32 -m pip install -U some_package # Install/Upgrade some_package to python 2.7 - 32 bit if present

Si vous exécutez et maintenez plusieurs versions de python, je vous recommande fortement de lire les environnements virtuels python virtualenv ou venv qui vous permettent d'isoler la version de python et les paquetages présents.

Installation de paquets pas encore sur pip sous forme de roues

De nombreux packages python pur ne sont pas encore disponibles sur Python Package Index en tant que roues, mais s’installent toujours correctement. Cependant, certains paquets sous Windows donnent l'erreur redoutée de vcvarsall.bat.

Le problème est que le package que vous tentez d’installer contient une extension C ou C ++ et qu’il n’est pas actuellement disponible en tant que roue pré-construite à partir de l’index python, pypi et que vous n’avez pas besoin de la chaîne de tels articles.

La solution la plus simple consiste à consulter l' excellent site de Christoph Gohlke et à trouver la version appropriée des bibliothèques dont vous avez besoin. En utilisant le nom de paquet -cp NN - doit correspondre à votre version de python, c’est-à-dire que si vous utilisez Windows 32 bits python même sur win64, le nom doit inclure -win32- et si vous utilisez le python 64 bits, -win_amd64 - et la version python doit correspondre, par exemple pour Python 34 le nom du fichier doit inclure -cp 34-, etc. est essentiellement la magie que pip fait pour vous sur le site pypi.

Alternativement, vous devez obtenir le kit de développement Windows correspondant à la version de python que vous utilisez, les en-têtes de toutes les bibliothèques avec lesquelles le package que vous essayez de construire interagissent, éventuellement les en-têtes python de la version de python, etc.

Python 2.7 utilisait Visual Studio 2008, Python 3.3 et 3.4 utilisaient Visual Studio 2010 et Python 3.5+ utilisait Visual Studio 2015.

Ensuite, vous devrez peut-être localiser les fichiers d'en-tête, lors de la révision correspondante pour les bibliothèques auxquelles le package souhaité se connecte, et les télécharger vers les emplacements appropriés.

Enfin, vous pouvez laisser pip faire votre compilation - bien sûr, si le paquet a des dépendances que vous n'avez pas encore, vous devrez peut-être aussi trouver les fichiers d'en-tête pour eux aussi.

Alternatives: Cela vaut la peine de regarder, aussi bien sur le site de pypi que sur celui de Christop , pour toute version légèrement antérieure du paquet que vous cherchez qui soit purement python ou pré-construit pour votre plate-forme et version python. trouvé, jusqu'à ce que votre paquet devienne disponible. De même, si vous utilisez la toute dernière version de python, vous trouverez peut-être que les responsables des paquets ont besoin d' un peu de temps pour les rattraper. Pour les projets qui nécessitent un package spécifique, vous devrez peut-être utiliser un python légèrement plus ancien. Vous pouvez également vérifier le site source des packages pour voir s'il existe une version fourchue disponible pré-construite ou en python pur et rechercher des packages alternatifs offrant les fonctionnalités dont vous avez besoin mais qui sont disponibles. Oreiller , activement maintenu , en remplacement de PIL actuellement non mis à jour en 6 ans et non disponible pour python 3 .

Après - propos , j'encourage tous ceux qui rencontrent ce problème à consulter le gestionnaire de bogues du paquet et à ajouter, ou augmenter s'il n'y en a pas déjà, un ticket demandant poliment aux responsables des paquets de fournir une roue sur pypi pour vos besoins spécifiques. combinaison de plate-forme et de python, si cela est fait alors normalement les choses iront mieux avec le temps, certains responsables de paquets ne réalisent pas qu'ils ont manqué une combinaison donnée que les gens pourraient utiliser.

Remarque sur l'installation de pré-versions

Pip suit les règles du contrôle de version sémantique et préfère par défaut les paquets publiés sur les pré-versions. Donc, si un paquet donné a été publié en tant que V0.98 et qu'il y a aussi une version candidate V1.0-rc1 le comportement par défaut de pip install sera d'installer V0.98 - si vous souhaitez installer la version candidate, il vous est conseillé Pour tester d'abord dans un environnement virtuel , vous pouvez activer le faire avec --pip install --pre -package-name ou --pip install --pre --upgrade nom-package . Dans de nombreux cas, il est possible que les versions préliminaires ou les versions candidates ne disposent pas de roulettes conçues pour toutes les combinaisons de plates-formes et de versions, de sorte que vous êtes plus susceptible de rencontrer les problèmes ci-dessus.

Remarque sur l'installation des versions de développement

Vous pouvez également utiliser pip pour installer des versions de développement de paquets à partir de github et d'autres emplacements, car ce code est en flux, il est très peu probable que des roues soient construites pour cela, donc tous les paquets impurs nécessiteront la présence des outils de construction. être cassé à tout moment, l'utilisateur est fortement encouragé à installer uniquement de tels paquets dans un environnement virtuel.

Trois options existent pour de telles installations:

  1. Télécharger un instantané compressé, la plupart des systèmes de contrôle de version en ligne ont la possibilité de télécharger un instantané compressé du code. Cela peut être téléchargé manuellement et ensuite installé avec le chemin d' pip install / vers / téléchargé / fichier note que pour la plupart des formats de compression, pip gérera le déballage dans une zone de cache, etc.
  2. Laissez pip s'occuper du téléchargement avec: pip install URL / of / package / repository - vous devrez peut-être utiliser les --trusted-host , --client-cert et / ou --proxy pour que cela fonctionne. correctement, en particulier dans un environnement d'entreprise. par exemple:
    > py -3.5-32 -m venv demo-pip
    > demo-pip\Scripts\activate.bat
    > python -m pip install -U pip
    Collecting pip
      Using cached pip-9.0.1-py2.py3-none-any.whl
    Installing collected packages: pip
      Found existing installation: pip 8.1.1
        Uninstalling pip-8.1.1:
          Successfully uninstalled pip-8.1.1
    Successfully installed pip-9.0.1
    > pip install git+https://github.com/sphinx-doc/sphinx/
    Collecting git+https://github.com/sphinx-doc/sphinx/
      Cloning https://github.com/sphinx-doc/sphinx/ to c:\users\steve-~1\appdata\local\temp\pip-04yn9hpp-build
    Collecting six>=1.5 (from Sphinx==1.7.dev20170506)
      Using cached six-1.10.0-py2.py3-none-any.whl
    Collecting Jinja2>=2.3 (from Sphinx==1.7.dev20170506)
      Using cached Jinja2-2.9.6-py2.py3-none-any.whl
    Collecting Pygments>=2.0 (from Sphinx==1.7.dev20170506)
      Using cached Pygments-2.2.0-py2.py3-none-any.whl
    Collecting docutils>=0.11 (from Sphinx==1.7.dev20170506)
      Using cached docutils-0.13.1-py3-none-any.whl
    Collecting snowballstemmer>=1.1 (from Sphinx==1.7.dev20170506)
      Using cached snowballstemmer-1.2.1-py2.py3-none-any.whl
    Collecting babel!=2.0,>=1.3 (from Sphinx==1.7.dev20170506)
      Using cached Babel-2.4.0-py2.py3-none-any.whl
    Collecting alabaster<0.8,>=0.7 (from Sphinx==1.7.dev20170506)
      Using cached alabaster-0.7.10-py2.py3-none-any.whl
    Collecting imagesize (from Sphinx==1.7.dev20170506)
      Using cached imagesize-0.7.1-py2.py3-none-any.whl
    Collecting requests>=2.0.0 (from Sphinx==1.7.dev20170506)
      Using cached requests-2.13.0-py2.py3-none-any.whl
    Collecting typing (from Sphinx==1.7.dev20170506)
      Using cached typing-3.6.1.tar.gz
    Requirement already satisfied: setuptools in f:\toolbuild\temp\demo-pip\lib\site-packages (from Sphinx==1.7.dev20170506)
    Collecting sphinxcontrib-websupport (from Sphinx==1.7.dev20170506)
      Downloading sphinxcontrib_websupport-1.0.0-py2.py3-none-any.whl
    Collecting colorama>=0.3.5 (from Sphinx==1.7.dev20170506)
      Using cached colorama-0.3.9-py2.py3-none-any.whl
    Collecting MarkupSafe>=0.23 (from Jinja2>=2.3->Sphinx==1.7.dev20170506)
      Using cached MarkupSafe-1.0.tar.gz
    Collecting pytz>=0a (from babel!=2.0,>=1.3->Sphinx==1.7.dev20170506)
      Using cached pytz-2017.2-py2.py3-none-any.whl
    Collecting sqlalchemy>=0.9 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading SQLAlchemy-1.1.9.tar.gz (5.2MB)
        100% |################################| 5.2MB 220kB/s
    Collecting whoosh>=2.0 (from sphinxcontrib-websupport->Sphinx==1.7.dev20170506)
      Downloading Whoosh-2.7.4-py2.py3-none-any.whl (468kB)
        100% |################################| 471kB 1.1MB/s
    Installing collected packages: six, MarkupSafe, Jinja2, Pygments, docutils, snowballstemmer, pytz, babel, alabaster, imagesize, requests, typing, sqlalchemy, whoosh, sphinxcontrib-websupport, colorama, Sphinx
      Running setup.py install for MarkupSafe ... done
      Running setup.py install for typing ... done
      Running setup.py install for sqlalchemy ... done
      Running setup.py install for Sphinx ... done
    Successfully installed Jinja2-2.9.6 MarkupSafe-1.0 Pygments-2.2.0 Sphinx-1.7.dev20170506 alabaster-0.7.10 babel-2.4.0 colorama-0.3.9 docutils-0.13.1 imagesize-0.7.1 pytz-2017.2 requests-2.13.0 six-1.10.0 snowballstemmer-1.2.1 sphinxcontrib-websupport-1.0.0 sqlalchemy-1.1.9 typing-3.6.1 whoosh-2.7.4

Notez le préfixe git+ sur l'URL.

  1. Cloner le dépôt en utilisant git , mercurial ou tout autre outil acceptable, de préférence un outil DVCS, et utiliser l' pip install path / to / clonée / repo - ce sera à la fois processus tout fichier requires.text et effectuer la construction et étapes configuration, vous pouvez modifier manuellement répertoire à votre référentiel cloné et exécutez pip install -r requires.txt , puis python setup.py install pour obtenir le même effet. Les grands avantages de cette approche est que si l'opération de clonage initial peut prendre plus de temps que l'instantané téléchargement , vous pouvez mettre à jour la dernière avec, dans le cas de git: git pull origin master et si la version actuelle contient des erreurs , vous pouvez utiliser pip uninstall nom-package, puis utilisez les git checkout pour revenir à l'historique du référentiel vers les versions antérieures et réessayer.


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow