pip est l'un des gestionnaires de paquets de python, d'autres incluent conda et pipenv. Dans la série python3, s'il s'agit de la version 3.4 ou ultérieure, pip sera installé en même temps que python est installé. Vous pouvez installer et gérer des packages qui ne sont pas inclus dans la bibliothèque Python standard.
Vérifiez si vous pouvez utiliser pip:
$ pip --version
pip 10.0.1 from /Users/endroit/venv/lib/python3.7/site-packages/pip (python 3.7)
mise à jour pip
$ pip install --upgrade pip
Revérifier la version du pip
$ pip --version
pip 19.3.1 from /Users/endroit/venv/lib/python3.7/site-packages/pip (python 3.7)
Jetons un coup d'œil aux commandes qui peuvent être utilisées avec pip:
$ pip help
Usage:
pip <command> [options]
Commands:
install Install packages.
download Download packages.
uninstall Uninstall packages.
freeze Output installed packages in requirements format.
list List installed packages.
show Show information about installed packages.
check Verify installed packages have compatible dependencies.
config Manage local and global configuration.
search Search PyPI for packages.
wheel Build wheels from your requirements.
hash Compute hashes of package archives.
completion A helper command used for command completion.
debug Show information useful for debugging.
help Show help for commands.
General Options:
-h, --help Show help.
--isolated Run pip in an isolated mode,
ignoring environment variables and
user configuration.
-v, --verbose Give more output. Option is
additive, and can be used up to 3
times.
-V, --version Show version and exit.
-q, --quiet Give less output. Option is
additive, and can be used up to 3
times (corresponding to WARNING,
ERROR, and CRITICAL logging
levels).
--log <path> Path to a verbose appending log.
--proxy <proxy> Specify a proxy in the form
[user:passwd@]proxy.server:port.
--retries <retries> Maximum number of retries each
connection should attempt (default
5 times).
--timeout <sec> Set the socket timeout (default 15
seconds).
--exists-action <action> Default action when a path already
exists: (s)witch, (i)gnore, (w)ipe,
(b)ackup, (a)bort.
--trusted-host <hostname> Mark this host or host:port pair as
trusted, even though it does not
have valid or any HTTPS.
--cert <path> Path to alternate CA bundle.
--client-cert <path> Path to SSL client certificate, a
single file containing the private
key and the certificate in PEM
format.
--cache-dir <dir> Store the cache data in <dir>.
--no-cache-dir Disable the cache.
--disable-pip-version-check
Don't periodically check PyPI to
determine whether a new version of
pip is available for download.
Implied with --no-index.
--no-color Suppress colored output
La bibliothèque python standard est étendue, mais il existe d'autres frameworks, outils, bibliothèques, etc. python créés par des développeurs du monde entier dans l'index des packages Python (PyPI). ) Est publié. (Lire comme tarte à tarte, pas tarte à tarte.) Vérifiez les packages installés dans l'environnement actuel avec la liste pip (lorsque rien n'est encore installé):
$ pip list
Package Version
---------- -------
pip 19.3.1
setuptools 39.0.1
Utilisez la commande pip install pour installer le package que vous souhaitez utiliser à partir de PyPI. Si vous souhaitez utiliser la bibliothèque de machine learning scicit-learn:
$ pip install scikit-learn
Collecting scikit-learn
Downloading https://files.pythonhosted.org/packages/82/d9/69769d4f79f3b719cc1255f9bd2b6928c72f43e6f74084e3c67db86c4d2b/scikit_learn-0.22.1-cp37-cp37m-macosx_10_6_intel.whl (11.0MB)
|████████████████████████████████| 11.0MB 851kB/s
Collecting scipy>=0.17.0
Using cached https://files.pythonhosted.org/packages/85/7a/ae480be23b768910a9327c33517ced4623ba88dc035f9ce0206657c353a9/scipy-1.4.1-cp37-cp37m-macosx_10_6_intel.whl
Collecting joblib>=0.11
Downloading https://files.pythonhosted.org/packages/28/5c/cf6a2b65a321c4a209efcdf64c2689efae2cb62661f8f6f4bb28547cf1bf/joblib-0.14.1-py2.py3-none-any.whl (294kB)
|████████████████████████████████| 296kB 1.1MB/s
Collecting numpy>=1.11.0
Using cached https://files.pythonhosted.org/packages/2f/5b/2cc2b9285e8b2ca8d2c1e4a2cbf1b12d70a2488ea78170de1909bca725f2/numpy-1.18.1-cp37-cp37m-macosx_10_9_x86_64.whl
Installing collected packages: numpy, scipy, joblib, scikit-learn
Successfully installed joblib-0.14.1 numpy-1.18.1 scikit-learn-0.22.1 scipy-1.4.1
Vérifiez les packages installés dans votre environnement actuel:
$ pip list
Package Version
------------ -------
joblib 0.14.1
numpy 1.18.1
pip 19.3.1
scikit-learn 0.22.1
scipy 1.4.1
setuptools 39.0.1
Je viens d'installer scikit-learn, mais joblib, numpy et scipy sont installés en plus de scikit-learn. C'est parce que scikit-learn dépend d'autres paquets joblib, numpy et scipy. En d'autres termes, scicit-learn seul ne fonctionne pas, il a donc installé les autres packages requis ensemble.
Vous pouvez vérifier les informations de version et de dépendance du package installé avec la commande pip show:
$ pip show scikit-learn
Name: scikit-learn
Version: 0.22.1
Summary: A set of python modules for machine learning and data mining
Home-page: http://scikit-learn.org
Author: None
Author-email: None
License: new BSD
Location: /Users/endroit/venv/lib/python3.7/site-packages
Requires: scipy, joblib, numpy
Required-by:
Nécessite: scipy, joblib, numpy, pour que vous puissiez voir que scikit-learn dépend de scipy, joblib, numpy. Puisque Required-by: est vide, vous pouvez confirmer qu'aucun paquet ne dépend jusqu'à présent de scikit-learn.
Jetons également un coup d'œil au scipy installé avec:
$ pip show scipy
Name: scipy
Version: 1.4.1
Summary: SciPy: Scientific Library for Python
Home-page: https://www.scipy.org
Author: None
Author-email: None
License: BSD
Location: /Users/endroit/venv/lib/python3.7/site-packages
Requires: numpy
Required-by: scikit-learn
Vous pouvez voir que scipy a besoin de numpy et est nécessaire pour scikit-learn.
Étant donné que pip install installe toujours la dernière version disponible publiquement, vous devez spécifier la version lorsque vous souhaitez installer une version fixe d'un package. Par exemple, la dernière version de scikit-learn est la 0.22.1, mais si vous souhaitez installer la version 0.21.3:
$ pip install scikit-learn==0.21.3
Collecting scikit-learn==0.21.3
Using cached https://files.pythonhosted.org/packages/e9/57/8a9889d49d0d77905af5a7524fb2b468d2ef5fc723684f51f5ca63efed0d/scikit_learn-0.21.3-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Requirement already satisfied: scipy>=0.17.0 in ./venv/lib/python3.7/site-packages (from scikit-learn==0.21.3) (1.4.1)
Requirement already satisfied: joblib>=0.11 in ./venv/lib/python3.7/site-packages (from scikit-learn==0.21.3) (0.14.1)
Requirement already satisfied: numpy>=1.11.0 in ./venv/lib/python3.7/site-packages (from scikit-learn==0.21.3) (1.18.1)
Installing collected packages: scikit-learn
Found existing installation: scikit-learn 0.22.1
Uninstalling scikit-learn-0.22.1:
Successfully uninstalled scikit-learn-0.22.1
Successfully installed scikit-learn-0.21.3
Même si vous avez déjà installé scikit-learn-0.22.1, il le désinstallera d'abord, puis installera la version spécifiée. Quant à joblib, numpy et scipy, ils sont déjà installés et répondent aux exigences de scikit-learn-0.21.3, ils seront donc laissés tels quels.
Si vous souhaitez spécifier plusieurs versions de package à installer, vous pouvez les écrire ensemble dans requirements.txt (n'importe quel nom) et pip install.
$ cat requirements.txt
joblib==0.14.1
numpy==1.18.1
scikit-learn==0.21.3
scipy==1.4.1
$ pip install -r requirements.txt
Collecting joblib==0.14.1
Using cached https://files.pythonhosted.org/packages/28/5c/cf6a2b65a321c4a209efcdf64c2689efae2cb62661f8f6f4bb28547cf1bf/joblib-0.14.1-py2.py3-none-any.whl
Collecting numpy==1.18.1
Using cached https://files.pythonhosted.org/packages/2f/5b/2cc2b9285e8b2ca8d2c1e4a2cbf1b12d70a2488ea78170de1909bca725f2/numpy-1.18.1-cp37-cp37m-macosx_10_9_x86_64.whl
Collecting scikit-learn==0.21.3
Using cached https://files.pythonhosted.org/packages/e9/57/8a9889d49d0d77905af5a7524fb2b468d2ef5fc723684f51f5ca63efed0d/scikit_learn-0.21.3-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
Collecting scipy==1.4.1
Using cached https://files.pythonhosted.org/packages/85/7a/ae480be23b768910a9327c33517ced4623ba88dc035f9ce0206657c353a9/scipy-1.4.1-cp37-cp37m-macosx_10_6_intel.whl
Installing collected packages: joblib, numpy, scipy, scikit-learn
Successfully installed joblib-0.14.1 numpy-1.18.1 scikit-learn-0.21.3 scipy-1.4.1
Si vous souhaitez dupliquer l'environnement actuel dans un autre projet, etc., vous pouvez écrire l'intégralité de l'environnement actuel dans un fichier avec la commande pip freeze:
$ pip freeze > requirements.txt
$ cat requirements.txt
joblib==0.14.1
numpy==1.18.1
scikit-learn==0.21.3
scipy==1.4.1
En plus de '==', vous pouvez ajouter des conditions telles que '<=' et '> ='. spécificateurs d'exigences Par exemple, si scikit-learn> = 0.21.3 est défini:
$ cat requirements.txt
joblib==0.14.1
numpy==1.18.1
scikit-learn>=0.21.3
scipy==1.4.1
Vérification de l'environnement actuel:
$ pip list
Package Version
------------ -------
joblib 0.14.1
numpy 1.18.1
pip 19.3.1
scikit-learn 0.21.3
scipy 1.4.1
setuptools 39.0.1
Essayez pip install -r requirements.txt:
$ pip install -r requirements.txt
Requirement already satisfied: joblib==0.14.1 in ./venv/lib/python3.7/site-packages (from -r requirements.txt (line 1)) (0.14.1)
Requirement already satisfied: numpy==1.18.1 in ./venv/lib/python3.7/site-packages (from -r requirements.txt (line 2)) (1.18.1)
Requirement already satisfied: scikit-learn>=0.21.3 in ./venv/lib/python3.7/site-packages (from -r requirements.txt (line 3)) (0.21.3)
Requirement already satisfied: scipy==1.4.1 in ./venv/lib/python3.7/site-packages (from -r requirements.txt (line 4)) (1.4.1)
On dit que les conditions décrites dans requirements.txt sont remplies. Eh bien, scikit-learn 0.21.3 satisfait certainement scikit-learn> = 0.21.3. Lorsque vous souhaitez mettre à jour vers la dernière version qui remplit les conditions - mise à niveau:
$ pip install --upgrade -r requirements.txt
Requirement already up-to-date: joblib==0.14.1 in ./venv/lib/python3.7/site-packages (from -r requirements.txt (line 1)) (0.14.1)
Requirement already up-to-date: numpy==1.18.1 in ./venv/lib/python3.7/site-packages (from -r requirements.txt (line 2)) (1.18.1)
Collecting scikit-learn>=0.21.3
Using cached https://files.pythonhosted.org/packages/82/d9/69769d4f79f3b719cc1255f9bd2b6928c72f43e6f74084e3c67db86c4d2b/scikit_learn-0.22.1-cp37-cp37m-macosx_10_6_intel.whl
Requirement already up-to-date: scipy==1.4.1 in ./venv/lib/python3.7/site-packages (from -r requirements.txt (line 4)) (1.4.1)
Installing collected packages: scikit-learn
Found existing installation: scikit-learn 0.21.3
Uninstalling scikit-learn-0.21.3:
Successfully uninstalled scikit-learn-0.21.3
Successfully installed scikit-learn-0.22.1
Vous pouvez également écrire le fichier des exigences dans le fichier des exigences:
$ cat requirements_old.txt
numpy==1.18.1
scipy==1.4.1
$ cat requirements_new.txt
-r requirements_old.txt
scikit-learn>=0.21.3
$ pip install -r requirements_new.txt
Collecting numpy==1.18.1
Using cached https://files.pythonhosted.org/packages/2f/5b/2cc2b9285e8b2ca8d2c1e4a2cbf1b12d70a2488ea78170de1909bca725f2/numpy-1.18.1-cp37-cp37m-macosx_10_9_x86_64.whl
Collecting scipy==1.4.1
Using cached https://files.pythonhosted.org/packages/85/7a/ae480be23b768910a9327c33517ced4623ba88dc035f9ce0206657c353a9/scipy-1.4.1-cp37-cp37m-macosx_10_6_intel.whl
Collecting scikit-learn>=0.21.3
Using cached https://files.pythonhosted.org/packages/82/d9/69769d4f79f3b719cc1255f9bd2b6928c72f43e6f74084e3c67db86c4d2b/scikit_learn-0.22.1-cp37-cp37m-macosx_10_6_intel.whl
Collecting joblib>=0.11
Using cached https://files.pythonhosted.org/packages/28/5c/cf6a2b65a321c4a209efcdf64c2689efae2cb62661f8f6f4bb28547cf1bf/joblib-0.14.1-py2.py3-none-any.whl
Installing collected packages: numpy, scipy, joblib, scikit-learn
Successfully installed joblib-0.14.1 numpy-1.18.1 scikit-learn-0.22.1 scipy-1.4.1
$ pip list
Package Version
------------ -------
joblib 0.14.1
numpy 1.18.1
pip 19.3.1
scikit-learn 0.22.1
scipy 1.4.1
setuptools 39.0.1
Vous pouvez rechercher des packages publiés sur PyPI avec la recherche pip. Par exemple, recherchez Qiita:
$ pip search qiita
qiita (0.1.1) - Qiita api wrapper for Python
qiita-spots (0.2.0) - Qiita: Spot Patterns
qiita_v2 (0.2.1) - Python Wrapper for Qiita API v2
qiitacli (1.1.0) - CLI Application for Qiita API v2
qiitap (1.3.1) - Add include function to Qiita
Markdown
qiita_api_wrapper (0.1.0) - Qiita API V2 wrapper for Python
qiidly (1.0.0) - Sync Qiita feeds for followees and
following tags to Feedly. -> Qiita&#
12391;フォロӦ
0;中のタグ&#
12392;ユーザӦ
0;をFeedlyに同
399;。
Cependant, cette méthode ne vous donne pas les détails du paquet, donc la plupart du temps vous effectuerez une recherche sur le site Web PyPI.
Vérification de l'environnement actuel:
$ pip list
Package Version
------------ -------
joblib 0.14.1
numpy 1.18.1
pip 19.3.1
scikit-learn 0.22.1
scipy 1.4.1
setuptools 39.0.1
Avant de désinstaller le package, vérifiez avec pip show qu'il n'y a pas d'autres packages qui nécessitent ce package avant la désinstallation de pip. Si vous n'avez plus besoin de scikit-learn:
$ pip show scikit-learn
Name: scikit-learn
Version: 0.22.1
Summary: A set of python modules for machine learning and data mining
Home-page: http://scikit-learn.org
Author: None
Author-email: None
License: new BSD
Location: /Users/endroit/venv/lib/python3.7/site-packages
Requires: joblib, scipy, numpy
Required-by:
$ pip uninstall scikit-learn
Uninstalling scikit-learn-0.22.1:
Would remove:
/Users/endroit/venv/lib/python3.7/site-packages/scikit_learn-0.22.1.dist-info/*
/Users/endroit/venv/lib/python3.7/site-packages/sklearn/*
Proceed (y/n)? y
Successfully uninstalled scikit-learn-0.22.1
$ pip list
Package Version
---------- -------
joblib 0.14.1
numpy 1.18.1
pip 19.3.1
scipy 1.4.1
setuptools 39.0.1
Quand j'ai installé scikit-learn, j'ai eu joblib, numpy et scipy, mais quand je le désinstalle, je peux les garder! Typique
Vous pouvez ignorer la confirmation avec -y:
$ pip uninstall joblib -y
$ pip uninstall scipy -y
$ pip uninstall numpy -y
Désinstallations multiples:
$ pip uninstall -y joblib scipy numpy
Désinstaller en spécifiant dans le fichier des exigences:
pip uninstall -r requirements.txt -y
La commande pip check vérifiera les dépendances entre les packages installés. scipy et scikit-learn dépendent de numpy, mais sans numpy:
$ pip list
Package Version
------------ -------
joblib 0.14.1
pip 19.3.1
scikit-learn 0.22.1
scipy 1.4.1
setuptools 39.0.1
$ pip check
scipy 1.4.1 requires numpy, which is not installed.
scikit-learn 0.22.1 requires numpy, which is not installed.
Cela me dit qu'il n'y a pas de numpy.
What Is Pip? A Guide for New Pythonistas
Recommended Posts