Python requirements.txt Builder

Generate a pinned requirements.txt for common Python project types

Pick a project type (web API, data science, ML, CLI, scraping) and get a version-pinned requirements.txt with the core libraries, exact or compatible-release pins, and optional dev/test dependencies.

What is the difference between == and ~= pins?

An exact pin like fastapi==0.115.6 locks the version precisely for reproducible builds. A compatible-release pin like fastapi~=0.115.6 allows later patch versions (0.115.x) but not 0.116, balancing reproducibility with automatic bug fixes.

The Python requirements.txt Builder turns a project type into a ready-to-install, version-pinned requirements.txt. Pick web API, data science, machine learning, CLI or scraping, and the tool emits the core libraries that project type actually uses — pinned for reproducible installs.

How it works

Each archetype maps to a curated set of packages with sensible recent versions. The tool renders one name<op>version line per dependency, where the operator is either == for an exact pin or ~= for a compatible-release pin. Exact pins reproduce a build byte-for-byte; compatible-release pins like requests~=2.32.3 allow later patch versions (2.32.x) while blocking a minor bump that might break you. Optional development tools — pytest, ruff, mypy — are appended under a comment so you can split them into a requirements-dev.txt later.

Pinning notes

Pinning matters because, without it, pip installs whatever is newest at install time, so two deploys weeks apart can ship different code. Pins make the same versions land in CI, Docker and on your laptop. Direct pins do not freeze transitive dependencies though — for that, compile a lock file:

pip install pip-tools
pip-compile requirements.in   # produces a fully pinned requirements.txt

Tips

Install with pip install -r requirements.txt inside a virtual environment. The bundled versions are a starting point, not a live feed — run pip list --outdated periodically and re-pin. For new projects, consider a modern manager like uv or Poetry, which records the full resolved dependency tree automatically.