uv add și uv remove în Python

Adaugă sau elimină o dependență: actualizează pyproject.toml, uv.lock și mediul .venv dintr-o singură comandă.

Sintaxă
uv add pachet
uv add "pachet>=1.0"
uv add --dev pytest
uv remove pachet

Ce face uv add și uv remove

uv add requests face trei lucruri: scrie "requests>=2.34.2" în lista dependencies din pyproject.toml, calculează versiunile exacte ale tuturor pachetelor și le scrie în uv.lock, apoi instalează pachetele în .venv. Cu pip, pașii aceștia se fac separat, de mână.

uv add --dev pytest pune pachetul în grupul de dezvoltare ([dependency-groups] dev), pentru unelte de care nu are nevoie programul în producție. uv remove requests scoate pachetul din pyproject.toml și din mediu, împreună cu dependențele lui pe care nu le mai folosește nimeni.

Parametri

Parametru Descriere
pachet Unul sau mai multe pachete, opțional cu versiune: "pandas>=3.0", "pachet[extra]".
--dev Adaugă în grupul de dezvoltare dev.
--group nume Adaugă într-un grup cu alt nume, de exemplu docs.
--optional extra Adaugă ca dependență opțională ([project.optional-dependencies]).
-r requirements.txt Adaugă toate pachetele dintr-un requirements.txt existent.

Ce returnează

Lista pachetelor instalate (+), eliminate (-) sau reconstruite (~).

Exemple

Exemplul 1: O dependență pentru program și una pentru teste

uv add requests
uv add --dev pytest
grep -A3 -E "^dependencies|^\[dependency-groups" pyproject.toml

Ieșire în terminal

Using CPython 3.14.7
Creating virtual environment at: .venv
Resolved 6 packages in 538ms
      Built magazin @ file:///home/ana/magazin
Prepared 2 packages in 315ms
Installed 6 packages in 10ms
 + certifi==2026.10.23
 + charset-normalizer==3.5.2
 + idna==3.20
 + magazin==0.1.0 (from file:///home/ana/magazin)
 + requests==2.34.2
 + urllib3==2.8.0
Resolved 12 packages in 496ms
...
Installed 6 packages in 8ms
 + iniconfig==2.3.1
 ~ magazin==0.1.0 (from file:///home/ana/magazin)
 + packaging==26.3
 + pluggy==1.7.0
 + pygments==2.21.0
 + pytest==9.1.1
dependencies = [
    "requests>=2.34.2",
]

[dependency-groups]
dev = [
    "pytest>=9.1.1",
]

Exemplul 2: Eliminarea unei dependențe

Odată cu requests pleacă și cele patru pachete de care avea nevoie doar el.

uv remove requests

Ieșire în terminal

Resolved 7 packages in 7ms
      Built magazin @ file:///home/ana/magazin
Prepared 1 package in 4ms
Uninstalled 6 packages in 10ms
Installed 1 package in 2ms
 - certifi==2026.10.23
 - charset-normalizer==3.5.2
 - idna==3.20
 ~ magazin==0.1.0 (from file:///home/ana/magazin)
 - requests==2.34.2
 - urllib3==2.8.0

Greșeli frecvente

  • Folosești uv pip install într-un proiect uv. Pachetul ajunge în mediu, dar nu în pyproject.toml și uv.lock, iar la următorul uv sync dispare. În proiect folosește uv add.
  • Editezi uv.lock de mână. Fișierul este generat; schimbă pyproject.toml sau folosește uv add / uv remove.
  • Uiți să pui în Git uv.lock. Fără el, colegii și serverul pot primi alte versiuni.

Comenzi înrudite

  • uv sync și uv.lock: Aduce mediul .venv exact la versiunile din uv.lock: instalează ce lipsește și șterge ce nu mai e în proiect.
  • uv run: Rulează un script sau o comandă în mediul proiectului, după ce verifică că pachetele instalate se potrivesc cu uv.lock.
  • uv init: Creează un proiect Python nou cu uv: pyproject.toml, .python-version, README și un depozit Git.
  • pyproject.toml: Fișierul standard de configurare al unui proiect Python: nume, versiune, dependențe și setările uneltelor.
  • pip install: Instalează pachete Python de pe PyPI, cu o versiune anume sau la ultima versiune, împreună cu dependențele lor.