Interview question
What is the difference between requirements.txt and pyproject.toml? requirements.txt और pyproject.toml में क्या अंतर है?
Answer
| File | Purpose | Format |
|---|---|---|
| requirements.txt | Simple list of dependencies (traditional pip approach) | Plain text, one package per line |
| pyproject.toml | Modern, standardized project metadata AND dependencies (PEP 518/621) | TOML format, structured |
# requirements.txt example
# requests==2.31.0
# flask>=2.0,<3.0
# pytest
pip install -r requirements.txt
# pyproject.toml example - more structured, covers build system too
# [project]
# name = "my_package"
# version = "1.0.0"
# dependencies = [
# "requests==2.31.0",
# "flask>=2.0,<3.0"
# ]
#
# [project.optional-dependencies]
# dev = ["pytest", "black"]
#
# [build-system]
# requires = ["setuptools>=61.0"]
# build-backend = "setuptools.build_meta"
# pyproject.toml is the modern STANDARD replacing setup.py AND
# often requirements.txt for defining a package's build configuration,
# metadata, and dependencies all in one standardized file
# Tools like poetry and pip-tools generate/manage pyproject.toml
# for reproducible dependency resolution| File | उद्देश्य | Format |
|---|---|---|
| requirements.txt | Dependencies की simple list | Plain text |
| pyproject.toml | Modern, standardized project metadata और dependencies | TOML format |
# requirements.txt उदाहरण
# requests==2.31.0
# flask>=2.0,<3.0
pip install -r requirements.txt
# pyproject.toml उदाहरण
# [project]
# name = "my_package"
# version = "1.0.0"
# dependencies = [
# "requests==2.31.0"
# ]
#
# [build-system]
# requires = ["setuptools>=61.0"]
# build-backend = "setuptools.build_meta"
# pyproject.toml setup.py और requirements.txt दोनों की जगह
# modern standard बन रहा है - metadata, dependencies एक file मेंWas this answer clear?