costapy.ditaajipratama.net/pages/requirement/pip.md
2026-01-04 22:16:17 +07:00

199 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# pip
`pip` is Pythons **package manager**.
Its the tool you use to **install, upgrade, and remove Python libraries** that arent included in the standard library.
Think of it like:
* `apt` on Debian/Ubuntu
* `dnf` on Fedora
* `npm` for JavaScript
## What does pip do?
With `pip`, you can:
1. **Install packages**
```bash
pip install requests
```
2. **Upgrade packages**
```bash
pip install --upgrade requests
```
3. **Uninstall packages**
```bash
pip uninstall requests
```
4. **List installed packages**
```bash
pip list
```
5. **Install from a requirements file**
```bash
pip install -r requirements.txt
```
## Where do packages come from?
By default, pip downloads packages from **PyPI** (Python Package Index):
* [https://pypi.org](https://pypi.org)
* Contains **hundreds of thousands** of Python libraries
* Example packages: `requests`, `numpy`, `flask`, `django`, `pandas`
## pip vs Python itself
* **Python** → the programming language + standard library
* **pip** → installs *extra* libraries written by the community
Example:
```python
import math # standard library (no pip needed)
import requests # external library (installed via pip)
```
## pip and Python versions
On many systems:
* `pip` → Python 2 or system default
* `pip3` → Python 3
Safer way (recommended):
```bash
python3 -m pip install requests
```
This ensures pip matches the Python version youre using.
## Virtual environments
`pip` works best with **virtual environments** ([venv](pages/requirement/venv.md)) to avoid breaking system Python:
```bash
python3 -m venv venv
source venv/bin/activate
pip install flask
```
## What is `requirements.txt`?
`requirements.txt` is a **list of Python packages** (and versions) your project depends on.
Example:
```txt
flask==3.0.0
requests>=2.31.0
gunicorn
```
## Install dependencies from `requirements.txt`
### Basic usage
```bash
pip install -r requirements.txt
```
### Safer (recommended)
```bash
python3 -m pip install -r requirements.txt
```
This ensures pip matches your Python version.
## Use with a virtual environment (best practice)
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
After activation, all packages go into `venv/`.
## Generate `requirements.txt` from current environment
If you already installed packages:
```bash
pip freeze > requirements.txt
```
⚠️ This captures **everything** installed in the environment.
## Common version formats
```txt
flask==3.0.0 # exact version (reproducible builds)
requests>=2.31.0 # minimum version
numpy~=1.26.0 # compatible release
django<5.0 # version upper limit
```
## Install from multiple requirement files
```bash
pip install -r base.txt -r dev.txt
```
Useful for:
* `base.txt` → production
* `dev.txt` → development tools (pytest, black, etc.)
## Requirements from Git / local path
```txt
git+https://github.com/pallets/flask.git
-e .
```
Then install:
```bash
pip install -r requirements.txt
```
## Debian / system Python warning (important)
On Debian-based systems, **dont install globally** unless you know what youre doing:
❌ Bad:
```bash
sudo pip install -r requirements.txt
```
✅ Good:
```bash
python3 -m venv venv
pip install -r requirements.txt
```
## Typical workflow (TL;DR)
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
```