Ce face uv run
uv run main.py rulează scriptul cu Python-ul din .venv-ul proiectului, fără să activezi mediul. Înainte de rulare, uv verifică dacă mediul se potrivește cu pyproject.toml și uv.lock și îl actualizează dacă e nevoie (de exemplu după ce un coleg a adăugat o dependență). Dacă .venv nu există, îl creează.
Merge și pentru comenzi instalate în mediu: uv run pytest, uv run python, uv run ruff check. Cu --with pachet adaugi un pachet doar pentru rularea aceea, fără să-l scrii în proiect. Un script cu metadate în comentariul de la început (creat cu uv init --script sau uv add --script) primește un mediu temporar cu dependențele lui.
Parametri
| Parametru | Descriere |
|---|---|
comanda |
Un fișier .py sau o comandă din mediu, urmate de argumentele ei. |
--with pachet |
Pachet în plus, doar pentru această rulare. |
--python versiune |
Rulează cu altă versiune de Python. |
--no-sync |
Nu verifica și nu actualiza mediul înainte de rulare. |
--no-dev |
Nu instala grupul dev. |
Ce returnează
Ieșirea programului rulat; codul de ieșire este cel al programului.
Exemple
Exemplul 1: Un script care folosește o dependență a proiectului
Python-ul din .venv găsește requests, deși Python-ul sistemului nu îl are instalat.
uv run python -c "import requests; print(requests.__version__)"
python3 -c "import requests" # Python-ul sistemului, fără uv
Ieșire în terminal
2.34.2
Traceback (most recent call last):
File "<string>", line 1, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
Exemplul 2: Testele proiectului
uv run pytest -q
Ieșire în terminal
... [100%]
3 passed in 0.02s
Greșeli frecvente
- Scrii
uv run main.pycând fișierul nu există: uv nu găsește ce să ruleze și afișeazăerror: Failed to spawn: main.py. Verifică numele și folderul. - Rulezi
python script.pyîn loc deuv run script.py, cu mediul neactivat, și primeștiModuleNotFoundError. - Folosești
--withpentru un pachet de care programul are nevoie mereu. Adaugă-l cuuv add, altfel nu apare în proiect.
Comenzi înrudite
uv add și uv remove: Adaugă sau elimină o dependență: actualizează pyproject.toml, uv.lock și mediul .venv dintr-o singură comandă.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 init: Creează un proiect Python nou cu uv: pyproject.toml, .python-version, README și un depozit Git.python -m venv: Creează un mediu virtual: un folder cu propriul Python și propriile pachete, separat de restul sistemului.