koleo-izochrona/UV_CHEATSHEET.md

115 lines
2.0 KiB
Markdown

# uv - Ściągawka (Cheatsheet)
## 🚀 Szybki start
```bash
# Instalacja uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Projekt Izochrona
./setup.sh # Konfiguracja
./run.sh # Uruchomienie serwera
```
## 📦 Zarządzanie pakietami
```bash
# Instalacja z requirements.txt
uv pip install -r requirements.txt
# Instalacja pojedynczego pakietu
uv pip install flask
# Instalacja z pyproject.toml
uv sync
# Aktualizacja pakietów
uv pip install --upgrade flask
uv pip install --upgrade -r requirements.txt
# Lista pakietów
uv pip list
uv pip freeze
```
## 🔧 Środowiska wirtualne
```bash
# Stwórz venv
uv venv
# Z konkretną wersją Pythona
uv venv --python 3.11
# Usuń venv
rm -rf .venv/
```
## ▶️ Uruchamianie
```bash
# Uruchom skrypt (auto-używa venv!)
uv run --no-project app.py
uv run --no-project path/to/script.py
# Uruchom moduł
uv run --no-project -m flask run
# Z argumentami
uv run --no-project app.py --debug
```
## 📝 Projekt Izochrona - Komendy
```bash
# Instalacja projektu
./setup.sh
# Uruchomienie backendu
./run.sh
# lub
cd backend && uv run --no-project app.py
# Pobranie danych GTFS
cd backend && uv run --no-project download_gtfs.py
# Przykłady API
uv run --no-project examples/api_examples.py
# Dodaj nowy pakiet
cd backend
echo "matplotlib>=3.8.0" >> requirements.txt
uv pip install -r requirements.txt
```
## ⚡ Dlaczego uv?
| Operacja | pip | uv |
|----------|-----|-----|
| Instalacja pakietów | ~30-60s | ~2-5s |
| Rozwiązywanie zależności | ~10-20s | ~1-2s |
| Cache | Lokalne | Globalne |
| Aktywacja venv | Ręczna | Automatyczna |
## 💡 Porady
```bash
# Nie musisz aktywować venv!
uv run --no-project python script.py
# Cache jest globalny - oszczędność miejsca
~/.cache/uv/
# Kompilacja requirements
uv pip compile requirements.txt -o requirements.lock
# Sync z lock file
uv pip sync requirements.lock
```
## 🔗 Linki
- Docs: https://docs.astral.sh/uv/
- GitHub: https://github.com/astral-sh/uv
- Porównanie z pip: https://astral.sh/blog/uv