W tym samouczku dowiemy się, jak używać pip do instalowania pakietów Pythona i zarządzania nimi.
Co to jest pip?
pip
jest standardowym menedżerem pakietów dla Pythona. Możemy użyć pip
do zainstalowania dodatkowych pakietów, które nie są dostępne w standardowej bibliotece Pythona. Na przykład,
pip install numpy
Gdybyśmy zainstalowali pip
w naszym systemie, to polecenie zainstalowałoby numpy
bibliotekę.
Jak zainstalować pip?
pip
jest preinstalowany na Pythonie w wersji 3.4 lub starszej. Możemy sprawdzić, czy pip
jest zainstalowany za pomocą następującego polecenia w konsoli:
pip --version
Jeśli pip
jest już dostępna w systemie, pip
wyświetlana jest odpowiednia wersja, na przykład:
pip 19.3.1 z C: Python37 lib site-packages pip (python 3.7)
Jeśli używamy starszej wersji Pythona lub nie mamy pip
zainstalowanej z jakiegoś innego powodu, wykonaj kroki opisane w tym linku: instalacja pip
Korzystanie z pip
pip
to program wiersza poleceń. Po instalacji pip
jest dodawane polecenie, którego można używać z wierszem poleceń.
Podstawowa składnia pip to:
pip
Instalowanie pakietów za pomocą pip
Oprócz standardowej biblioteki Python, społeczność Pythona wnosi wkład w tworzenie dużej liczby pakietów dostosowanych do różnych struktur programistycznych, narzędzi i bibliotek.
Większość tych pakietów jest oficjalnie hostowana i publikowana w indeksie pakietów języka Python (PyPI). pip
pozwala nam pobrać i zainstalować te pakiety.
Instalacja pakietu podstawowego
install
Polecenie używane do instalowania pakietów przy użyciu pip
. Weźmy przykład:
Załóżmy, że chcemy zainstalować requests
popularną bibliotekę HTTP dla Pythona. Możemy to zrobić za pomocą następującego polecenia.
pip install requests
Wynik
Zbieranie żądań przy użyciu pamięci podręcznej https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl: Zbieranie plików card .pythonhosted.org / packages / bc / a9 / 01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8 / chardet-3.0.4-py2.py3-none-any.whl Zbieranie urllib3! = 1.25.0,! = 1.2.1ps: Używanie https://llib3! = 1.25.0,! = 1.21ps: //files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl Zbieranie idna = 2.5 Korzystanie z pamięci podręcznej https://files/files.org /2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl Zbieranie certifi> = 2017.4.17 Pobieranie https: //files.pythonhosted.org / packages / b9 / 63 / df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99 / certifi-2019.11.28-py2.py3-none-any.whl (156kB) Instalowanie zebranych pakietów: chardet, urllib3, certard. 3.0.4 idna-2.8 żądań-2.22.0 urllib3-1.25.7
Tutaj widzimy, że pip
został użyty z install
poleceniem, po którym następuje nazwa pakietu, który chcemy zainstalować ( requests
).
Wszystkie inne zależności podoba chardet
, urllib3
a certifi
wymagane dla tego pakietu są również instalowane pip
.
Określanie wersji pakietu
Gdy pip
install
jest używany w swojej minimalnej formie, pip
pobiera najnowszą wersję pakietu.
Czasami tylko określona wersja jest kompatybilna z innymi programami. Tak więc możemy zdefiniować wersję pakietu w następujący sposób:
żądania instalacji pip == 2.21.0
Tutaj zainstalowaliśmy bibliotekę w wersji 2.11.0 requests
.
Wyświetlanie zainstalowanych pakietów za pomocą pip
pip list
Komenda może być użyta do listy wszystkich dostępnych pakietów w bieżącym środowisku Pythona.
pip list
Wynik
Wersja pakietu ---------- ---------- certifi 2019.11.28 chardet 3.0.4 idna 2.8 pip 19.3.1 żądania 2.22.0 setuptools 45.0.0 urllib3 1.25.7 wheel 0.33 .6
Informacje o pakiecie z pokazem pip
pip show
Polecenie wyświetla informacje o jednym lub więcej zainstalowanych pakietów. Spójrzmy na przykład:
pip show requests
Wynik
Nazwa: wnioski Wersja: 2.22.0 Podsumowanie: Python HTTP dla ludzi. Strona domowa: http://python-requests.org Autor: Kenneth Reitz Adres e-mail autora: [email protected] Licencja: Apache 2.0 Lokalizacja: c: users dell desktop venv lib site-packages Wymaga: certifi, chardet, urllib3, idna Wymagane przez:
Tutaj show
polecenie wyświetla informacje o requests
bibliotece. Zauważ, że wymaga i żądana przez kolumnę w powyższym przykładzie.
Wymaga kolumna pokazuje, jakich zależności requests
wymaga biblioteka. A kolumna Wymagane według zawiera pakiety, które wymagają requests
.
Odinstalowywanie pakietu za pomocą pip
Możemy odinstalować pakiet, korzystając pip
z pip uninstall
polecenia.
Załóżmy, że chcemy usunąć requests
bibliotekę z naszego obecnego środowiska Python. Możemy to zrobić w następujący sposób:
pip uninstall requests
Wynik
Odinstalowywanie żądań-2.22.0: spowoduje usunięcie: C: Python37 lib site-packages requests-2.22.0.dist-info * C: Python37 lib site-packages requests * Proceed (y / n) y Pomyślnie odinstalowano request-2.22.0
Jak widać, requests
pakiet jest usuwany po ostatnim monicie.
Uwaga : Nawet jeśli określony pakiet zostanie usunięty, pakiety, które zostały zainstalowane jako zależności, nie zostaną usunięte. W tym przypadku zależności ( chardet
, urllib3,
i certifi)
z requests
biblioteki nie są odinstalowane.
Jeśli potrzebujemy również usunąć zależności pakietu, możemy użyć pip show
polecenia, aby wyświetlić zainstalowane pakiety i usunąć je ręcznie.
Korzystanie z plików wymagań
Plik zawierający wszystkie nazwy pakietów może również służyć do instalowania pakietów Pythona w partiach.
Spójrzmy na przykład:
Załóżmy, że mamy plik Requirements.txt, który zawiera następujące wpisy:
numpy Poduszka pygame
Możemy zainstalować wszystkie te pakiety i ich zależności za pomocą jednego polecenia w pip
.
pip install -r requirements.txt
Wynik
Collecting numpy Using cached https://files.pythonhosted.org/packages/a9/38/f6d6d8635d496d6b4ed5d8ca4b9f193d0edc59999c3a63779cbc38aa650f/numpy-1.18.1-cp37-cp37m-win_amd64.whl Collecting Pillow Using cached https://files.pythonhosted.org/packages/88/6b/66f502b5ea615f69433ae1e23ec786b2cdadbe41a5cfb1e1fabb4f9c6ce9/Pillow-7.0.0-cp37-cp37m-win_amd64.whl Collecting pygame Using cached https://files.pythonhosted.org/packages/ed/56/b63ab3724acff69f4080e54c4bc5f55d1fbdeeb19b92b70acf45e88a5908/pygame-1.9.6-cp37-cp37m-win_amd64.whl Installing collected packages: numpy, Pillow, pygame Successfully installed Pillow-7.0.0 numpy-1.18.1 pygame-1.9.6
Here, we have used the same install
command with pip
.
However, the additional argument -r
specifies pip
that we are passing a requirements file rather than a package name.
Creating Requirements File
As an alternative to manually creating the requirements file, pip
offers the freeze
command. Let's look at how to use this command.
Suppose our current Python environment has the following packages. It can be displayed using pip list
.
Package Version ---------- ------- numpy 1.17.0 Pillow 6.1.0 pip 19.3.1 pygame 1.9.6 setuptools 45.0.0 wheel 0.33.6
The packages that don't come preinstalled will Python are listed using the freeze
command.
pip freeze
Output
numpy==1.17.0 Pillow==6.1.0 pygame==1.9.6
The pip freeze
command displays the packages and their version in the format of the requirements file.
So this output can be redirected to create a requirements file using the following command:
pip freeze> requirements.txt
A new requirements.txt file is created in the working directory. It can later be used in other Python environments to install specific versions of packages.
Search packages in pip
The search
command is used to search for packages in the command prompt. Let's look at an example:
pip search pygame
Output
pygame-anisprite (1.0.0) - Animated sprites for PyGame! pygame-ai (0.1.2) - Videogame AI package for PyGame pygame-engine (0.0.6) - Simple pygame game engine. pygame-assets (0.1) - Assets manager for Pygame apps pygame-gui (0.4.2) - A GUI module for pygame 2 pygame-spritesheet (0.2.0) - Python pygame extension that provides SpriteSheet class. pygame-minesweeper (1.0) - Minesweeper game implemented in python using pygame pygame-menu (2.1.0) - A menu for pygame, simple, lightweight and easy to use pygame-plot (0.1) - Quick visualization of data using pygame with a matplotlib style pygame (1.9.6) - Python Game Development…
Here, we have searched for a library called pygame
. All other packages that match the keyword are displayed. This command is helpful for finding related packages.
Aby dowiedzieć się więcej pip
, odwiedź: Python pip (oficjalna dokumentacja)