58 / 59

Python pip

pip nima?

pip — Python uchun standart paket menejeri. Biz pipdan Python standart kutubxonasida mavjud bo'lmagan qo'shimcha paketlarni o'rnatish uchun foydalanishimiz mumkin. Masalan,

kod
pip install numpy

Agar tizimimizga pipni o'rnatgan bo'lsak, bu buyruq numpy kutubxonasini o'rnatgan bo'lardi.

pip'ni qanday o'rnatish kerak?

pip Python 3.4 yoki undan eski versiyalarda oldindan o'rnatilgan holda keladi. pip o'rnatilganligini konsolda quyidagi buyruq yordamida tekshirishimiz mumkin:

kod
pip --version

Agar pip tizimda allaqachon mavjud bo'lsa, tegishli pip versiyasi ko'rsatiladi, masalan:

kod
pip 19.3.1 from C:\Python37\lib\site-packages\pip (python 3.7)

Agar biz Pythonning eskiroq versiyasidan foydalanayotgan bo'lsak yoki boshqa sabab bilan pip o'rnatilmagan bo'lsa, ushbu havoladagi qadamlarga amal qiling: pip installation

pip'dan foydalanish

pip — buyruqlar qatori dasturi. O'rnatilgandan so'ng, pip buyruqli buyruqlar qatorida ishlatilishi mumkin bo'lgan pip buyrug'i qo'shiladi.

pipning asosiy sintaksisi:

kod
pip <pip argumentlari>

pip yordamida paketlarni o'rnatish

Standart Python kutubxonasidan tashqari, Python jamoasi turli ishlab chiqish freymvorklari, vositalari va kutubxonalari uchun moslashtirilgan katta sondagi paketlarga hissa qo'shadi.

Bu paketlarning aksariyati Python Package Index (PyPI)'da rasmiy ravishda joylashtirilgan va nashr etilgan. pip bizga bu paketlarni yuklab olish va o'rnatish imkonini beradi.

Asosiy paket o'rnatish

install buyrug'i pip yordamida paketlarni o'rnatish uchun ishlatiladi. Keling, bir misolni olamiz:

Aytaylik, biz Python uchun mashhur HTTP kutubxonasi bo'lgan requestsni o'rnatmoqchimiz. Buni quyidagi buyruq yordamida qilishimiz mumkin.

kod
pip install requests

Natija

kod
Collecting requests
  Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl
Collecting chardet<3.1.0,>=3.0.2
  Using cached https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1
  Using cached https://files.pythonhosted.org/packages/b4/40/a9837291310ee1ccc242ceb6ebfd9eb21539649f193a7c8c86ba15b98539/urllib3-1.25.7-py2.py3-none-any.whl
Collecting idna<2.9,>=2.5
  Using cached https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl
Collecting certifi>=2017.4.17
  Downloading https://files.pythonhosted.org/packages/b9/63/df50cac98ea0d5b006c55a399c3bf1db9da7b5a24de7890bc9cfd5dd9e99/certifi-2019.11.28-py2.py3-none-any.whl (156kB)
Installing collected packages: chardet, urllib3, idna, certifi, requests
Successfully installed certifi-2019.11.28 chardet-3.0.4 idna-2.8 requests-2.22.0 urllib3-1.25.7

Bu yerda, ko'rishimiz mumkinki, pip install buyrug'i bilan o'rnatmoqchi bo'lgan paket nomi (requests) bilan birga ishlatilgan.

Bu paket uchun kerak bo'lgan chardet, urllib3 va certifi kabi barcha boshqa bog'liqliklar ham pip tomonidan o'rnatiladi.

Paket versiyasini belgilash

pip install o'zining minimal shaklida ishlatilganda, pip paketning eng so'nggi versiyasini yuklab oladi.

Ba'zida, faqat muayyan versiya boshqa dasturlar bilan mos keladi. Shuning uchun, biz paketning versiyasini quyidagi tarzda belgilashimiz mumkin:

kod
pip install requests==2.21.0

Bu yerda, biz requests kutubxonasining 2.11.0 versiyasini o'rnatdik.

pip bilan o'rnatilgan paketlarni ro'yxatlash

pip list buyrug'i joriy Python muhitidagi barcha mavjud paketlarni ro'yxatlash uchun ishlatilishi mumkin.

kod
pip list

Natija

kod
Package    Version
---------- ----------
certifi    2019.11.28
chardet    3.0.4
idna       2.8
pip        19.3.1
requests   2.22.0
setuptools 45.0.0
urllib3    1.25.7
wheel      0.33.6

pip show bilan paket ma'lumoti

pip show buyrug'i bir yoki bir nechta o'rnatilgan paket haqidagi ma'lumotni ko'rsatadi. Keling, bir misolga qaraymiz:

kod
pip show requests

Natija

kod
Name: requests
Version: 2.22.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
License: Apache 2.0
Location: c:\users\dell\desktop\venv\lib\site-packages
Requires: certifi, chardet, urllib3, idna
Required-by:

Bu yerda, show buyrug'i requests kutubxonasi haqidagi ma'lumotni ko'rsatadi. Yuqoridagi natijadagi Requires va Required-by ustunlariga e'tibor bering.

Requires ustuni requests kutubxonasi qaysi bog'liqliklarni talab qilishini ko'rsatadi. Va, Required-by ustuni requestsni talab qiladigan paketlarni ko'rsatadi.

pip bilan paketni o'chirish

Biz pip uninstall buyrug'i yordamida paketni o'chirishimiz mumkin.

Aytaylik, biz requests kutubxonasini joriy Python muhitimizdan olib tashlamoqchimiz. Buni quyidagi tarzda qilishimiz mumkin:

kod
pip uninstall requests

Natija

kod
Uninstalling requests-2.22.0:
  Would remove:
    C:\Python37\lib\site-packages\requests-2.22.0.dist-info\*
    C:\Python37\lib\site-packages\requests\*
Proceed (y/n)? y
  Successfully uninstalled requests-2.22.0

Ko'rib turganimizdek, oxirgi so'rovdan so'ng requests paketi o'chiriladi.

Eslatma: Belgilangan paket o'chirilgan bo'lsa-da, bog'liqlik sifatida o'rnatilgan paketlar o'chirilmaydi. Bu holatda, requests kutubxonasining bog'liqliklari (chardet, urllib3 va certifi) o'chirilmaydi.

Agar paketning bog'liqliklarini ham o'chirish kerak bo'lsa, o'rnatilgan paketlarni ko'rish va ularni qo'lda o'chirish uchun pip show buyrug'idan foydalanishimiz mumkin.

Talablar fayllaridan (Requirement Files) foydalanish

Barcha paket nomlarini o'z ichiga olgan fayl Python paketlarini paketlar (batch) shaklida o'rnatish uchun ham ishlatilishi mumkin.

Keling, bir misolga qaraymiz:

Aytaylik, bizda quyidagi yozuvlarga ega requirements.txt faylimiz bor:

kod
numpy
Pillow
pygame

Biz pipda bitta buyruq yordamida barcha bu paketlar va ularning bog'liqliklarini o'rnatishimiz mumkin.

kod
pip install -r requirements.txt

Natija

kod
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

Bu yerda, biz pip bilan bir xil install buyrug'idan foydalandik.

Biroq, qo'shimcha -r argumenti pipga biz paket nomi emas, talablar faylini uzatayotganimizni belgilaydi.

Talablar faylini yaratish

Talablar faylini qo'lda yaratishga muqobil sifatida, pip freeze buyrug'ini taklif etadi. Keling, bu buyruqdan qanday foydalanishga qaraymiz.

Aytaylik, joriy Python muhitimizda quyidagi paketlar bor. Uni pip list yordamida ko'rsatish mumkin.

kod
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

Python bilan oldindan o'rnatilmaydigan paketlar freeze buyrug'i yordamida ro'yxatlanadi.

kod
pip freeze

Natija

kod
numpy==1.17.0
Pillow==6.1.0
pygame==1.9.6

pip freeze buyrug'i paketlarni va ularning versiyasini talablar faylining formatida ko'rsatadi.

Shunday qilib, bu natijani quyidagi buyruq yordamida talablar faylini yaratish uchun yo'naltirish (redirect) mumkin:

kod
pip freeze > requirements.txt

Ishchi papkada yangi requirements.txt fayli yaratiladi. Uni keyinroq boshqa Python muhitlarida paketlarning muayyan versiyalarini o'rnatish uchun ishlatish mumkin.

pip'da paketlarni qidirish

search buyrug'i buyruqlar qatorida paketlarni qidirish uchun ishlatiladi. Keling, bir misolga qaraymiz:

kod
pip search pygame

Natija

kod
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
...

Bu yerda, biz pygame nomli kutubxonani qidirdik. Kalit so'zga mos keluvchi barcha boshqa paketlar ko'rsatiladi. Bu buyruq bog'liq paketlarni topish uchun foydali.

pip haqida ko'proq bilish uchun, tashrif buyuring: Python pip (rasmiy hujjat)

QBilimingizni sinab ko'ring
1 / 3

1. pip nima?