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.