# PIP

پایتون نیز مانند هر زبان مهم برنامه‌نویسی دیگری از کتابخانه‌ها و فریمورک‌های شخص ثالث پشتیبانی می‌کند. این کتابخانه‌ها را می‌توانید بر روی پایتون نصب کنید تا در هر پروژه، چرخ را از نو اختراع نکنید! این فریمورک‌ها در یک مخزن بسته‌های پایتون (PyPI) قابل دسترسی هستند. درواقع pip یک سیستم مدیر بسته در زبان پایتون و ابزاری است مبتنی بر خط فرمان که از آن برای نصب، حذف، بروز رسانی و در کل مدیریت بسته‌های (یا کتابخانه‌ها‌ی شخص ثالث) پایتون استفاده می‌گردد. همانند npm برای زبان node و composer برای زبان php یا maven برای زبان جاوا و... .

اگر از پایتون 2.7.9 (و بالاتر) یا پایتون 3.4 (و بالاتر) استفاده می¬کنید، در این صورت PIP به‌طور پیش‌فرض به همراه پایتون نصب شده است. اما اگر از نسخه‌های قدیمی‌تر استفاده می‌کنید، در این صورت باید خودتان اقدام به نصب آن کنید.

## نصب PIP

برای نصب pip لازم است تا فایل get-pip.py را دانلود نمایید. سپس به وسیله‌ دستوری مشابه python get-pip.py در خط فرمان، با سطح کاربری Administrator (در ویندوز) یا root (در گنولینوکس) می‌توانید اقدام به نصب pip نمایید. فراموش نشود، در زمان نصب نیاز به اتصال اینترنت است. البته در سیستم عامل¬های مختلف راه¬های دیگری نیز برای نصب PIP وجود دارد که در ادامه در مورد هرکدام از آن‌ها به اختصار توضیخ می¬دهیم.

### نصب در Windows

برای نصب PIP در این سیستم عامل ابتدا get-pip.py را دانلود کرده و سپس با استفاده از دستور زیر آن را اجرا می¬نماییم.

```python
>python get-pip.py

[...]
Successfully installed [...]

user> pip --version
pip 7.0.1 [...]

```

### نصب در Linux

در لینوکس نیز همانند سیستم عامل ویندوز می¬توان با دانلود و اجرای فایل get-pip.py و اجرای دستور زیر اقدام به نصب PIP کرد.

```python
user> sudo python3 get-pip.py

[...]
Successfully installed [...]

user> pip3 --version
pip 7.0.1 [...]

```

همچنین می¬توان با استفاده از ابزار مدیریت بسته خود سیستم، PIP را نصب کرد.

#### Advanced Package Tool (Python 2.x)

```bash
sudo apt-get install python-pip
```

#### Advanced Package Tool (Python 3.x)

```bash
sudo apt-get install python3-pip
```

#### pacman Package Manager (Python 2.x)

```bash
sudo apt-get install python3-pip
```

#### pacman Package Manager (Python 3.x)

```bash
sudo pacman -S python-pip
```

#### Yum Package Manager (Python 2.x)

```bash
sudo yum upgrade python-setuptools
sudo yum install python-pip python-wheel
```

#### Yum Package Manager (Python 3.x)

```bash
sudo yum install python3 python3-wheel
```

#### Dandified Yum (Python 2.x)

```bash
sudo dnf upgrade python-setuptools
sudo dnf install python-pip python-wheel
```

#### Dandified Yum (Python 3.x)

```bash
sudo dnf install python3 python3-wheel
```

#### Zypper Package Manager (Python 2.x)

```bash
sudo zypper install python-pip python-setuptools python-wheel
```

#### Zypper Package Manager (Python 3.x)

```bash
sudo zypper install python3-pip python3-setuptools python3-wheel
```

## دستورات PIP

شما با استفاده از دستورات مدیر بسته می¬توانید تا نصب، حذف و به‌روزرسانی کتابخانه¬های پایتون را مدیریت کنید. در ادامه به توضیح متداولترین دستورات آن خواهیم پرداخت.

### Version

برای مشاهده نسخه PIP که در جال حاضر بر روی سیستم شما نصب شده می‌توانید از این دستور استفاده نمایید.

### Install

برای نصب یک پکیج جدید از این دستور استفاده می¬شود، ساختار کلی این دستور به‌صورت زیر است.

```bash
# pip install [package name]
root> pip install SomePackage
```

البته این دستور آخرین نسخه از این بسته را نصب می¬کند و اگر شما بخواهید تا نسخه خاصی از یک بسته را نصب کنید می¬توانید از ساختار زیر استفاده نمایید:

```bash
# pip install [package name]==[version]
root> pip install SomePackage==1.0.4
```

همچنین برای نصب تمامی بسته هایی که در یک فایل متنی ذکر گردیده¬اند می¬توان از ساختار زیر استفاده نمایید:

```bash
# pip install -r [package file name]
root> pip install -r requirements.txt
```

همچنین برای به‌روزرسانی یک بسته می¬توان از کلید --upgrade با ساختار زیر استفاده نمود:

```bash
# pip install --upgrade [package name]
root> pip install --upgrade SomePackage
```

به‌جای --upgrade می¬توانید از -U نیز استفاده نمایید. همچنین برای نصب مجدد کامل یک بسته نیز می¬توان از کلید --force-reinstall با ساختار زیر استفاده نمود:

```bash
# pip install --upgrade [package name]  --force-reinstall
root> pip install --upgrade SomePackage –-force-reinstall
```

### Uninstall

برای حذف یک بسته می¬توان از این دستور استفاده نمود، برای این کار می¬توانید از ساختار زیر استفاده نمایید:

```bash
# pip uninstall [package name]
root> pip uninstall SomePackage
```

### List

برای گرفتن لیست تمامی بسته¬های نصب شده می توان از این دستور با ساختار زیر استفاده نمود:

```bash
# pip list
root> pip list
```

همچنین برای نمایش لیست بسته¬هایی که باید به‌روزرسانی شوند می¬توان از کلید --outdated با ساختار زیر استفاده نمود:

```bash
# pip list --outdated
root> pip list --outdated
```

### Freeze

برای گرفتن لیست تمامی بسته¬هایی که توسط PIP نصب شده¬اند می¬توان از این دستور با ساختار زیر استفاده نمود:

```bash
# pip freeze
root> pip freeze
```

همچنین اگر یک فایل از بسته¬های نصب شده داشته باشید، با زدن کد زیر در کنار پروژه یک فایل متنی بانام requirements ایجاد می¬شود که شامل فهرستی از بسته¬های نصب شده در پروژه داخل این فایل قرار دارد.

```bash
# pip freeze  > [Some file name]
root> pip freeze > requirement.txt
```

### Show

برای مشاهده جزئیات یک بسته از این دستور با ساختار زیر استفاده می¬شود:

```bash
# pip show [package name]
root> pip show SomePackage
```

### Search

برای جستجوی بسته¬ها می¬توان از سایت <https://pypi.org/> استفاده کرد یا از دستور search با ساختار زیر در خط فرمان استفاده نمود:

```bash
# pip serach [package name]
root> pip search SomePackage
```

توجه داشته باشید که تمامی دستورات فوق، با ساختار زیر نیز قابل اجرا هستند.

```bash
#python -m pip [some PIP command]
> python -m pip install json
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://iarash.gitbook.io/payton-based-on-documentation/fsl-awl/pip.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
