**Pip** – Python dasturlash tilida yozilgan dasturiy paket menejeri boʻlib, dasturiy paketlarni oʻrnatish va boshqarish uchun foydalaniladi. Python Software Foundation hamjamiyati Python ilovalarini ishlab chiqishda **pip**dan foydalanishni tavsiya qiladi. Pip menejeri Python Package Index onlayn repozitoriyasiga ulanadi. Pip boshqa dasturiy taʼminot repozitoriyalariga faqatgina Python Enhancement Propasal 503 (PEP) standartlari orqali ulanishi mumkin.

Tarixi
------

Dastlab Pip menejeri **pyinstall** nomi bilan 2008 yilda Ian Bicking (virtualenv dasturchisi) tomonidan EasyInstall paket menejeriga muqobil dastur sifatida ishlab chiqildi. Ushbu dastur nomi „Pip Installs Packages" nomining qisqartma shakli sifatida olingan. 2011-yilda Python Packaging Authority(PyPA) tashkiloti Carl Meyer, Brian Rosner va Jannis Leidel boshchiligida pip va virtualenv paket menejerlariga texnik xizmat koʻrsatishni boshladi.

pip 6.0 versiyadan boshlab, paket menejeri versiyalari „X.Y" formatda nomlanadigan boʻldi.

Buyruqlar qatori interfeysi
---------------------------

`pip install virtualenv` buyrugʻining natijasi
Pipning dasturiy interfeysi `pip install some-package-name` buyrugʻini ishga tushirish orqali Python dasturiy paketlarini oʻrnatadi.

Foydalanuvchilar quyidagi buyruqni berish orqali dasturiy paketni olib tashlashlari ham mumkin:

`pip uninstall some-package-name`

Python tilining muayyan versiyasi uchun paketlarni oʻrnatish quyidagi pip buyrugʻini berish orqali amalga oshiriladi, bunda `${version}` nomi 2, 3, 3.4 va shu kabi raqamlar bilan almashtiriladi:

`pip${version} install some-package-name` .

### setup.py oʻrnatish fayli

Pip loyihalardan lokal tarmoqda foydalanish uchun setup.py fayli bilan oʻrnatish imkonini beradi. Bunda python loyihasi quyidagi fayl tuzilishiga ega boʻlishini talab qiladi:

`example_project/`

`├── exampleproject/      Python manba kodi paketi`

`|    ├── __init__.py     Jildni dasturiy paket ichiga koʻchiradi`

`|  └── example.py      Namunaviy modul`

`└── README.md            Loyiha haqidagi maʼlumotlar.`

Ushbu strukturada foydalanuvchi setup.py faylini loyihaning boshiga qoʻsha oladi va u quyidagi tarkibga ega boʻladi:

```
from setuptools import setup, find\_packages

setup(
  name='example', # Paket nomi. Qachonki loyiha paket sifatida import qilinganda foydalaniladi.
  version='0.1.0', #Versiya raqami
  packages=find\_packages(include=['exampleproject', 'exampleproject.\*']) # Pip kerakli komponentlarni avtomatik o'rnatadi.
)

```
Shundan soʻng, pip menejeri ushbu loyihani bosh papkadan quyidagi buyruqni ishga tushirish orqali oʻrnatadi: `pip install -e.`

### Boshqa repozitoriyalar

Pip menejeri standart PyPI repozitoriyasidan tashqari boshqa repozitoriylarni ham qoʻllab-quvvatlaydi. Bunday repozitoriya HTTP(s) URL manzilida yoki kompyuter fayl tizimida joylashgan boʻlishi kerak. Uchinchi tomon repozitoriyalari -i yoki --index-url option buyruqlarini berish yordamida aniqlanadi. Misol uchun:

`pip install -i https://your-custom-repo/simple <package name>`

yoki fayl tizimi orqali:

`pip install -i /path/to/your/custom-repo/simple <package name>`.

Yana qarang
-----------

* Pipenv
* Python Poetry
* Python Packaging Authority

Manbalar
--------

1. ↑  „Release 1.0". *GitHub*. 17-sentyabr 2021-yilda asl nusxadan arxivlandi. Qaraldi: 4-mart 2020-yil.
2. ↑  „pip/LICENSE.txt". *Github* (17-aprel 2018-yil). 1-iyun 2018-yilda asl nusxadan arxivlandi. Qaraldi: 1-iyun 2018-yil.
3. ↑  *Kollár.* „Managing Python packages the right way" (en). *Opensource.com*.  Red Hat. Qaraldi: 23-iyun 2019-yil.
4. ↑  „Tool recommendations — Python Packaging User Guide". *packaging.python.org*. Qaraldi: 9-noyabr 2022-yil.
5. ↑  „pip install command line documentation". *pip.pypa.io*.
6. ↑  *Bicking.* „pyinstall: A New Hope" (24-sentyabr 2008-yil). 27-sentyabr 2008-yilda asl nusxadan arxivlandi. Qaraldi: 4-mart 2020-yil.
7. 1 2  „Packaging History". *Python Packaging Authority*. Qaraldi: 4-mart 2020-yil.
8. ↑  *Bicking.* „pyinstall is dead, long live pip!" (28-oktyabr 2008-yil). Qaraldi: 24-noyabr 2021-yil.
9. ↑  „Custom repository with pip install -i". Qaraldi: 12-yanvar 2022-yil.