requirements.txt în Python

Pachete și medii virtuale Python 3.4+ (pip inclus)

Fișierul text cu pachetele de care are nevoie un proiect, câte unul pe rând, instalat cu pip install -r.

Sintaxă
# requirements.txt
requests>=2.32
pandas==3.1.0

python -m pip install -r requirements.txt

Ce face requirements.txt

requirements.txt este un fișier text obișnuit, în folderul proiectului, cu câte un pachet pe rând. Fiecare rând poate avea o condiție de versiune: == (exact), >= (cel puțin), ~= (compatibil: ~=2.32 înseamnă >=2.32 și <3), sau o combinație ca ">=2.0,<3". Rândurile care încep cu # sunt comentarii.

pip install -r requirements.txt instalează tot ce e în fișier. Numele nu este obligatoriu, dar este convenția pe care o caută oamenii și multe servicii de găzduire. Proiectele noi folosesc tot mai des pyproject.toml pentru dependențe; requirements.txt rămâne folosit pentru aplicații simple și pentru lista exactă de versiuni produsă de pip freeze.

Parametri

Parametru Descriere
nume==versiune Versiune exactă.
nume&gt;=versiune Cel puțin această versiune.
nume~=versiune Versiune compatibilă (aceeași versiune majoră sau minoră, după câte cifre scrii).
-r alt-fisier.txt Include alt fișier de cerințe (de exemplu requirements-dev.txt include requirements.txt).
nume[extra] Pachetul împreună cu dependențele opționale extra.

Ce returnează

Fișierul nu returnează nimic; pip install -r afișează ce instalează.

Exemple

Exemplul 1: Un fișier cu limite de versiune și instalarea lui

pip vede că requests e deja instalat și instalează doar ce lipsește.

cat requirements.txt
python -m pip install -r requirements.txt

Ieșire în terminal

requests>=2.32
python-dateutil==2.9.0.post0
Requirement already satisfied: requests>=2.32 in ./.venv/lib/python3.14/site-packages (from -r requirements.txt (line 1)) (2.34.2)
Collecting python-dateutil==2.9.0.post0 (from -r requirements.txt (line 2))
  Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB)
Collecting six>=1.5 (from python-dateutil==2.9.0.post0->-r requirements.txt (line 2))
...
Installing collected packages: six, python-dateutil
Successfully installed python-dateutil-2.9.0.post0 six-1.17.0

Exemplul 2: Cerințe separate pentru dezvoltare

Pe server instalezi doar requirements.txt; pe calculatorul tău, requirements-dev.txt, care le include pe toate.

# requirements.txt
requests~=2.34
pandas>=3.0,<4

# requirements-dev.txt
-r requirements.txt
pytest>=9.0
ruff

Greșeli frecvente

  • Scrii pachetele pe un singur rând, separate prin virgulă. pip cere câte un pachet pe rând.
  • Lași requirements.txt neactualizat după ce instalezi un pachet nou, iar pe server programul dă ModuleNotFoundError. Adaugă pachetul în fișier când îl instalezi.
  • Pui și pachete de sistem sau ale altor proiecte, pentru că ai rulat pip freeze în afara mediului virtual.

Comenzi înrudite

  • pip freeze: Afișează pachetele instalate în formatul nume==versiune, gata de salvat în requirements.txt.
  • pip install: Instalează pachete Python de pe PyPI, cu o versiune anume sau la ultima versiune, împreună cu dependențele lor.
  • pyproject.toml: Fișierul standard de configurare al unui proiect Python: nume, versiune, dependențe și setările uneltelor.
  • python -m venv: Creează un mediu virtual: un folder cu propriul Python și propriile pachete, separat de restul sistemului.