Python Language
pip: PyPI Package Manager
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
- installer
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 |
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.
- Installez « Package de compilateur Visual C ++ pour Python 2.7 », disponible sur le site Web de Microsoft ou
- Installez « Windows SDK for Windows 7 et .NET Framework 4 » (v7.1), disponible sur le site Web de Microsoft ou
- Installez Visual Studio 2015 Community Edition (ou toute version ultérieure, lorsque celles-ci sont publiées) , en vous assurant de sélectionner les options d'installation du support C & C ++ par défaut . Le téléchargement et l'installation peuvent durer jusqu'à 8 heures . alors assurez- vous que ces options sont définies au premier essai.
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:
- 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. - 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.
- 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écutezpip install -r requires.txt
, puispython 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 utiliserpip uninstall
nom-package, puis utilisez lesgit checkout
pour revenir à l'historique du référentiel vers les versions antérieures et réessayer.