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>=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.