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,
pip install numpy
Agar tizimimizga pipni o'rnatgan bo'lsak, bu buyruq numpy kutubxonasini o'rnatgan bo'lardi.
pip Python 3.4 yoki undan eski versiyalarda oldindan o'rnatilgan holda keladi. pip o'rnatilganligini konsolda quyidagi buyruq yordamida tekshirishimiz mumkin:
pip --version
Agar pip tizimda allaqachon mavjud bo'lsa, tegishli pip versiyasi ko'rsatiladi, masalan:
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 — buyruqlar qatori dasturi. O'rnatilgandan so'ng, pip buyruqli buyruqlar qatorida ishlatilishi mumkin bo'lgan pip buyrug'i qo'shiladi.
pipning asosiy sintaksisi:
pip <pip argumentlari>
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.
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.
pip install requests
Natija
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.
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:
pip install requests==2.21.0
Bu yerda, biz requests kutubxonasining 2.11.0 versiyasini o'rnatdik.
pip list buyrug'i joriy Python muhitidagi barcha mavjud paketlarni ro'yxatlash uchun ishlatilishi mumkin.
pip list
Natija
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 buyrug'i bir yoki bir nechta o'rnatilgan paket haqidagi ma'lumotni ko'rsatadi. Keling, bir misolga qaraymiz:
pip show requests
Natija
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.
Biz pip uninstall buyrug'i yordamida paketni o'chirishimiz mumkin.
Aytaylik, biz requests kutubxonasini joriy Python muhitimizdan olib tashlamoqchimiz. Buni quyidagi tarzda qilishimiz mumkin:
pip uninstall requests
Natija
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.
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:
numpy
Pillow
pygame
Biz pipda bitta buyruq yordamida barcha bu paketlar va ularning bog'liqliklarini o'rnatishimiz mumkin.
pip install -r requirements.txt
Natija
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 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.
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.
pip freeze
Natija
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:
pip freeze > requirements.txt
Ishchi papkada yangi requirements.txt fayli yaratiladi. Uni keyinroq boshqa Python muhitlarida paketlarning muayyan versiyalarini o'rnatish uchun ishlatish mumkin.
search buyrug'i buyruqlar qatorida paketlarni qidirish uchun ishlatiladi. Keling, bir misolga qaraymiz:
pip search pygame
Natija
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)