add synced notes on IT know how

This commit is contained in:
Mathias Schneider
2026-03-17 19:01:50 +01:00
parent b8797d5ca8
commit fc3aef4da8
31 changed files with 13162 additions and 1 deletions
+94
View File
@@ -0,0 +1,94 @@
`uv` ist ein neues, sehr schnelles All-in-one-Tool für das Python-Ökosystem, entwickelt von Astral (den Machern von `ruff`).
Es ist im Kern ein **extrem schneller Paket- und Environment-Manager**, der mehrere bekannte Tools ersetzt bzw. bündelt:
- `pip` / `pip-tools` (Installation & Lockfiles)
- `virtualenv` / `venv` (virtuelle Umgebungen)
- `pyenv` (verschiedene Python-Versionen verwalten)
- Teile von `poetry` / `pipx` (Projekt- & Tool-Management)
`pip install uv` installiert dabei nur einen Bootstrapper, der das eigentliche `uv`-Binary nachlädt.
---
## Wofür ist `uv` gut?
### 1. Pakete extrem schnell installieren
`uv` ist in Rust geschrieben und deutlich schneller als `pip` oder `pip-tools` beim Auflösen und Installieren von Abhängigkeiten.
Beispiel (Drop-in für pip):
```bash
uv pip install requests
```
Auch mit `requirements.txt`:
```bash
uv pip install -r requirements.txt
```
---
### 2. Virtuelle Umgebungen verwalten
```bash
# Neue venv erstellen
uv venv .venv
# venv aktivieren (z. B. in bash)
source .venv/bin/activate
```
---
### 3. Python-Versionen verwalten
Ähnlich wie `pyenv`:
```bash
# Bestimmte Python-Version installieren
uv python install 3.12
# Projekt mit bestimmter Version starten
uv run --python 3.12 main.py
```
---
### 4. Projekte initialisieren & reproduzierbare Builds
`uv` unterstützt `pyproject.toml` und Lockfiles (`uv.lock`) für reproduzierbare Umgebungen:
```bash
# Neues Projekt anlegen
uv init my-project
cd my-project
uv sync # Installiert Abhängigkeiten gemäß pyproject + uv.lock
```
---
### 5. Skripte/Tools direkt ausführen
Ähnlich wie `pipx`:
```bash
uv run black .
uv run pytest
```
`uv` kümmert sich im Hintergrund um die passende Umgebung und Abhängigkeiten.
---
## Kurzfassung
`uv` ist sinnvoll, wenn du:
- Python-Pakete **deutlich schneller** installieren willst,
- **alles rund um Python-Umgebungen** (Packages, venvs, Python-Versionen, Tools) mit **einem** konsistenten Tool verwalten möchtest,
- reproduzierbare Builds mit `pyproject.toml` und Lockfile brauchst,
- eine moderne Alternative zu `pip`, `virtualenv`, `pyenv`, `pip-tools`, teilweise `poetry`/`pipx` suchst.
Wenn du aktuell `pip`, `virtualenv` & Co nutzt, kannst du mittelfristig sehr viel davon durch `uv` ersetzen.