requirements.txt & Dependency Management
requirements.txt lists all project dependencies. It ensures everyone on your team uses the same package versions.
10 min•By Priygop Team•Updated 2026
Dependency Management
Dependency Management
# Generate requirements.txt
# pip freeze > requirements.txt
# Install from requirements.txt
# pip install -r requirements.txt
# Version specifiers:
# package==1.0 exact version
# package>=1.0 minimum version
# package~=1.0 compatible release (1.x)
# package>=1.0,<2.0 range
# Example requirements.txt
print("=== Project Dependencies ===")
deps = {
"requests": "2.31.0",
"beautifulsoup4": "4.12.2",
"pytest": "7.4.3",
"python-dotenv": "1.0.0",
"click": "8.1.7",
}
for pkg, ver in deps.items():
print(f" {pkg}=={ver}")
# Development vs Production
print("\n--- dev-requirements.txt ---")
dev_deps = ["pytest==7.4.3", "black==23.12.0", "flake8==6.1.0", "mypy==1.7.0"]
for d in dev_deps:
print(f" {d}")
# Modern alternatives:
# - pyproject.toml (PEP 621)
# - poetry (dependency management + packaging)
# - pipenv (venv + pip combined)Tip
Tip
Pin exact versions in production: requests==2.31.0. Use >= for development: requests>=2.28. Use pip-tools for better dependency management.
Diagram
Loading diagram…
Always use virtual environments. pip freeze > requirements.txt. Use pyproject.toml (modern).
Common Mistake
Warning
Not pinning versions causes 'works on my machine' bugs. pip freeze > requirements.txt locks exact versions for reproducibility.
Quick Quiz
Practice Task
Note
(1) Create requirements.txt with pinned versions. (2) Install from requirements.txt in a fresh venv. (3) Update one package safely.