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.
Ü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
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
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;フォロӦ
0;中のタグ&#
12392;ユーザӦ
0;をFeedlyに同
399;。
Diese Methode gibt Ihnen jedoch nicht die Details des Pakets an, sodass Sie die meiste Zeit auf der Website PyPI suchen.
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! 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
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.