Python pip

W tym samouczku dowiemy się, jak używać pip do instalowania pakietów Pythona i zarządzania nimi.

Co to jest pip?

pipjest standardowym menedżerem pakietów dla Pythona. Możemy użyć pipdo zainstalowania dodatkowych pakietów, które nie są dostępne w standardowej bibliotece Pythona. Na przykład,

 pip install numpy 

Gdybyśmy zainstalowali pipw naszym systemie, to polecenie zainstalowałoby numpybibliotekę.

Jak zainstalować pip?

pipjest preinstalowany na Pythonie w wersji 3.4 lub starszej. Możemy sprawdzić, czy pipjest zainstalowany za pomocą następującego polecenia w konsoli:

 pip --version 

Jeśli pipjest już dostępna w systemie, pipwyś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 pipzainstalowanej z jakiegoś innego powodu, wykonaj kroki opisane w tym linku: instalacja pip

Korzystanie z pip

pipto program wiersza poleceń. Po instalacji pipjest 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). pippozwala nam pobrać i zainstalować te pakiety.

Instalacja pakietu podstawowego

installPolecenie używane do instalowania pakietów przy użyciu pip. Weźmy przykład:

Załóżmy, że chcemy zainstalować requestspopularną 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 pipzostał użyty z installpoleceniem, po którym następuje nazwa pakietu, który chcemy zainstalować ( requests).

Wszystkie inne zależności podoba chardet, urllib3a certifiwymagane dla tego pakietu są również instalowane pip.

Określanie wersji pakietu

Gdy pip installjest używany w swojej minimalnej formie, pippobiera 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 listKomenda 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 showPolecenie 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 showpolecenie wyświetla informacje o requestsbibliotece. Zauważ, że wymaga i żądana przez kolumnę w powyższym przykładzie.

Wymaga kolumna pokazuje, jakich zależności requestswymaga biblioteka. A kolumna Wymagane według zawiera pakiety, które wymagają requests.

Odinstalowywanie pakietu za pomocą pip

Możemy odinstalować pakiet, korzystając pipz pip uninstallpolecenia.

Załóżmy, że chcemy usunąć requestsbibliotekę 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ć, requestspakiet 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 requestsbiblioteki nie są odinstalowane.

Jeśli potrzebujemy również usunąć zależności pakietu, możemy użyć pip showpolecenia, 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)

Interesujące artykuły...