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

3.4 KiB
Raw Blame History

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
pip install requests
  1. Upgrade packages
pip install --upgrade requests
  1. Uninstall packages
pip uninstall requests
  1. List installed packages
pip list
  1. Install from a requirements file
pip install -r requirements.txt

Where do packages come from?

By default, pip downloads packages from PyPI (Python Package Index):

  • 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:

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):

python3 -m pip install requests

This ensures pip matches the Python version youre using.

Virtual environments

pip works best with virtual environments (venv) to avoid breaking system Python:

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:

flask==3.0.0
requests>=2.31.0
gunicorn

Install dependencies from requirements.txt

Basic usage

pip install -r requirements.txt
python3 -m pip install -r requirements.txt

This ensures pip matches your Python version.

Use with a virtual environment (best practice)

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:

pip freeze > requirements.txt

⚠️ This captures everything installed in the environment.

Common version formats

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

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

git+https://github.com/pallets/flask.git
-e .

Then install:

pip install -r requirements.txt

Debian / system Python warning (important)

On Debian-based systems, dont install globally unless you know what youre doing:

Bad:

sudo pip install -r requirements.txt

Good:

python3 -m venv venv
pip install -r requirements.txt

Typical workflow (TL;DR)

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py