[PYTHON] Was ist pip und wie benutzt du es?

Was ist pip?

pip ist einer der Paketmanager von Python, andere umfassen conda und pipenv. In der Python3-Serie wird bei Version 3.4 oder höher pip gleichzeitig mit der Installation von Python installiert. Sie können Pakete installieren und verwalten, die nicht in der Standard-Python-Bibliothek enthalten sind.

Mal sehen, wie Pip in einer virtuellen Umgebung verwendet wird

Überprüfen Sie, ob Sie pip verwenden können:

$ pip --version
pip 10.0.1 from /Users/Ort/venv/lib/python3.7/site-packages/pip (python 3.7)

Pip Update

$ pip install --upgrade pip

Überprüfen Sie die Pip-Version erneut

$ pip --version
pip 19.3.1 from /Users/Ort/venv/lib/python3.7/site-packages/pip (python 3.7)

Werfen wir einen Blick auf die Befehle, die mit pip verwendet werden können:

$ 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

Installieren Sie das Paket mit pip

Die Standard-Python-Bibliothek ist umfangreich, es gibt jedoch auch andere Python-Frameworks, -Tools, -Bibliotheken usw., die von Entwicklern auf der ganzen Welt im Python-Paketindex (PyPI) erstellt wurden. ) Ist veröffentlicht. (Lesen Sie als Tortenpastete, nicht als Tortenpastete.) Überprüfen Sie die in der aktuellen Umgebung installierten Pakete anhand der Pip-Liste (wenn noch nichts installiert ist):

$ pip list
Package    Version
---------- -------
pip        19.3.1
setuptools 39.0.1

Verwenden Sie den Befehl pip install, um das Paket zu installieren, das Sie von PyPI verwenden möchten. Wenn Sie die Bibliothek für maschinelles Lernen scicit-learn verwenden möchten:

$ 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

Überprüfen Sie die in Ihrer aktuellen Umgebung installierten Pakete:

$ 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

Ich habe gerade scikit-learn installiert, aber joblib, numpy und scipy werden zusätzlich zu scikit-learn installiert. Dies liegt daran, dass scikit-learn von anderen Paketen joblib, numpy und scipy abhängt. Mit anderen Worten, scicit-learn allein funktioniert nicht, daher wurden die anderen erforderlichen Pakete zusammen installiert.

Sie können die Versions- und Abhängigkeitsinformationen des installierten Pakets mit dem Befehl pip show überprüfen:

$ 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/Ort/venv/lib/python3.7/site-packages
Requires: scipy, joblib, numpy
Required-by:

Benötigt: scipy, joblib, numpy, damit Sie sehen können, dass scikit-learn von scipy, joblib, numpy abhängt. Da Required-by: leer ist, können Sie bestätigen, dass es bisher keine Pakete gibt, die von scikit-learn abhängen.

Werfen wir auch einen Blick auf die damit installierte Scipy:

$ 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/Ort/venv/lib/python3.7/site-packages
Requires: numpy
Required-by: scikit-learn

Sie können sehen, dass scipy numpy braucht und für scikit-learn benötigt wird.

pip install installiert immer die neueste öffentlich verfügbare Version. Wenn Sie also eine feste Version eines Pakets installieren möchten, müssen Sie die Version angeben. Die neueste Version von scikit-learn ist beispielsweise 0.22.1, aber wenn Sie Version 0.21.3 installieren möchten:

$ 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

Selbst wenn Sie scikit-learn-0.22.1 bereits installiert haben, wird es zuerst deinstalliert und dann die angegebene Version installiert. Joblib, Numpy und Scipy sind bereits installiert und erfüllen die Anforderungen von scikit-learn-0.21.3, sodass sie unverändert bleiben.

Wenn Sie mehrere zu installierende Paketversionen angeben möchten, können Sie diese in der Datei "require.txt" (beliebiger Name) und "pip install" zusammenschreiben.

$ 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

Wenn Sie die aktuelle Umgebung in ein anderes Projekt usw. duplizieren möchten, können Sie die gesamte aktuelle Umgebung mit dem Befehl pip freeze in eine Datei schreiben:

$ pip freeze > requirements.txt
$ cat requirements.txt
joblib==0.14.1
numpy==1.18.1
scikit-learn==0.21.3
scipy==1.4.1

Zusätzlich zu '==' können Sie Bedingungen wie '<=' und '> =' hinzufügen. Anforderungsspezifizierer Wenn beispielsweise scikit-learn> = 0.21.3 eingestellt ist:

$ cat requirements.txt
joblib==0.14.1
numpy==1.18.1
scikit-learn>=0.21.3
scipy==1.4.1

Aktuelle Umgebungsprüfung:

$ 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

Versuchen Sie pip install -r require.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)

Es wird gesagt, dass die in den Anforderungen.txt beschriebenen Bedingungen erfüllt sind. Nun, Scikit-Learn 0.21.3 erfüllt sicherlich Scikit-Learn> = 0.21.3. Wenn Sie auf die neueste Version aktualisieren möchten, die die Bedingungen erfüllt --upgrade:

$ 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

Sie können die Anforderungsdatei auch in die Anforderungsdatei schreiben:

$ 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

So finden Sie ein Paket

Sie können mit der Pip-Suche nach auf PyPI veröffentlichten Paketen suchen. Suchen Sie beispielsweise nach 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;&#12501;&#12457;&#12525;&#1254
                             0;&#20013;&#12398;&#12479;&#12464;&#
                             12392;&#12518;&#12540;&#12470;&#1254
                             0;&#12434;Feedly&#12395;&#21516;&#26
                             399;&#12290;

Diese Methode gibt Ihnen jedoch nicht die Details des Pakets an, sodass Sie die meiste Zeit auf der Website PyPI suchen.

Deinstallieren Sie das Paket mit pip

Aktuelle Umgebungsprüfung:

$ 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

Überprüfen Sie vor der Deinstallation des Pakets mit pip show, dass es keine anderen Pakete gibt, für die dieses Paket erforderlich ist, bevor pip deinstalliert wird. Wenn Sie kein Scikit-Lernen mehr benötigen:

$ 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/Ort/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/Ort/venv/lib/python3.7/site-packages/scikit_learn-0.22.1.dist-info/*
    /Users/Ort/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

Als ich scikit-learn installiert habe, habe ich joblib, numpy und scipy bekommen, aber wenn ich es deinstalliere, kann ich sie behalten! b_1.jpg Picture1.jpg Typisch

Sie können die Bestätigung mit -y überspringen:

$ pip uninstall joblib -y
$ pip uninstall scipy -y
$ pip uninstall numpy -y

Mehrere Deinstallationen:

$ pip uninstall -y joblib scipy numpy

Deinstallieren Sie, indem Sie in der Anforderungsdatei Folgendes angeben:

pip uninstall -r requirements.txt -y

Überprüfen Sie, ob die Abhängigkeiten erfüllt sind

Der Befehl pip check prüft, ob Abhängigkeiten zwischen installierten Paketen bestehen. scipy und scikit-learn hängen von numpy ab, aber ohne 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.

Es sagt mir, dass es keine Numpy gibt.

Referenz

What Is Pip? A Guide for New Pythonistas

Recommended Posts

Was ist pip und wie benutzt du es?
[Python] Was ist Pip? Erläutern Sie die Befehlsliste und deren Verwendung anhand aktueller Beispiele
Ist die parallele Programmierung schwierig, und wenn ja, was können Sie dagegen tun?
So installieren und verwenden Sie pyenv. Was tun, wenn Sie die Python-Version nicht wechseln können?
[Pandas] Was ist set_option?
[Python] Was ist ein Tupel? Erklärt, wie man es benutzt und wie man es benutzt, ohne zu tippen.
Verwendung ist und == in Python
Was ist der Unterschied zwischen "pip" und "conda"?
Was vergleichst du mit Python und ==?
So installieren Sie den Cascade-Detektor und wie verwenden Sie ihn
Wenn Sie versuchen, Python2 pip nach der Installation von Python3 pip zu installieren, wird dies abgelehnt
Was tun, wenn Sie mysqlclient nicht per Pip installieren können?
% Und str.format () in Python. Welches benutzt du?
[Python] Wie benutzt man Lambda-Ausdrücke? ?? [Kritzeleien] [Fortsetzung-1]
Was Sie mit Tensorflow 2.x tun können und was nicht
Installieren Sie tweepy mit pip und verwenden Sie es für API 1.1
[Python] Python und Sicherheit - is Was ist Python?
Wie sammelst du Informationen?
[AWS] Was tun, wenn Sie mit Lambda pfeifen möchten?
Was tun, wenn Sie unter Linux kein WLAN verwenden können?
Warum Django-Import-Export-Import so langsam ist und was zu tun ist
Was tun, wenn beim Versuch, pip mit pyenv zu verwenden, ein undefinierter Fehler angezeigt wird?
Was tun, wenn Sie eine Binärdatei katzen oder verfolgen und das Terminal verstümmelt ist?
[Python] Was ist ein Slice? Eine leicht verständliche Erklärung zur Verwendung anhand eines konkreten Beispiels
Was tun, wenn Sie pyaudio nicht mit pip #Python installieren können?
Geben und meinen Sie die Einschränkungsoption in scipy.optimize.minimize
Wenn es schwierig ist, das zu kopieren, was Sie mit vue erstellt haben
Was tun, wenn Sie nach dem Durchsuchen einer Textdatei Übereinstimmungen mit Binärdateien (Standardeingabe) erhalten?
Was tun, wenn bei der Pip-Installation ein Unicode-Dekodierungsfehler auftritt?
Verwendung von .bash_profile und .bashrc
So installieren und verwenden Sie Graphviz
Weißt du es nicht Befehl pip
Einführung in die Verwendung von Pytorch Lightning ~ Bis Sie Ihr eigenes Modell formatieren und auf Tensorboard ausgeben ~
Was tun, wenn Sie den Papierkorb in Lubuntu 18.04 nicht verwenden können?
NameError: Der globale Name'dot_parser 'ist nicht definiert und was ist zu tun, wenn er in Python angezeigt wird?
Python | Was Sie mit Python machen können
Was tun, wenn Sie die Rastersuche von sklearn in Python nicht verwenden können?
Wenn Sie es so verwenden möchten, wie es ist, wenn Sie es mit Lambda-Memo verwenden
Was tun, wenn Sie nicht mit pip in einer Babun-Umgebung installieren können?
Was tun, wenn Sie URL 443 mit pip nicht abrufen konnten?
Was tun, wenn eine Warnmeldung in der Pip-Liste angezeigt wird?
[Python] Was ist Pandas Series und DataFrame?
Was sagst du grob "sudo su"?
So installieren und verwenden Sie pandas_datareader [Python]
Was Sie mit API Vol.1 tun können
Datenanalyse, was machen Sie denn?
Was tun, wenn der Fehler RuntimeError angezeigt wird: Python wird nicht als Framework installiert, wenn Sie versuchen, matplitlib und pylab in Python 3.3 zu verwenden
Python: Verwendung von Einheimischen () und Globalen ()
Tag 64 Pip Install Tensorflow 2.0 ist da.
Verwendung von Python zip und Aufzählung
Was Sie mit Programmierkenntnissen machen können
Lassen Sie uns zusammenfassen, was Sie tun möchten.
Verwendung von pandas Timestamp und date_range
Es ist praktisch, stac_info und exc_info zu verwenden, wenn Sie Traceback in der Protokollausgabe durch Protokollierung anzeigen möchten.
Tipps für diejenigen, die verwirrt sind, wie man is und == in Python verwendet
Verstehst du das Vertrauensintervall richtig? Was ist der Unterschied zur Verurteilung?
[EC2] Was tun, wenn Selen festsitzt und die Verarbeitung nicht fortgesetzt wird?
Was gefällt Ihnen an der Konvertierung eines Arrays (einer Liste) in einen String?
[Einführung in die Statistik] Welche Art von Verteilung ist die t-Verteilung, die Chi-Quadrat-Verteilung und die F-Verteilung? Eine kleine Zusammenfassung der Verwendung von [Python]