---
title: 'Projektverwaltung mit uv'
url: 'https://gerfficient.com/de/home/python-uv'
markdown: 'https://gerfficient.com/de/home/python-uv.md'
lang: de
date: '2025-11-21'
description: 'Vor einiger Zeit habe ich einen Beitrag veröffentlicht, in dem erklärt wurde, wie man eine portable Entwicklungsumgebung in Python mit venv erstellt und verwaltet. In Kombination mit pyenv kann man so für eine gewünschte Version von Python Module und Pakete installieren. uv ist eine extrem schnelle…'
---

# Projektverwaltung mit uv

###  21. Nov. 2025 

Vor einiger Zeit habe ich einen [Beitrag](https://gerfficient.com/de/home/python-developing) veröffentlicht, in dem erklärt wurde, wie man eine portable Entwicklungsumgebung in Python mit `venv` erstellt und verwaltet. In Kombination mit `pyenv` kann man so für eine gewünschte Version von Python Module und Pakete installieren.

`uv` ist eine extrem schneller Verwalter von Abhängigkeiten und Umgebungen für die Entwicklung mit Python. In diesem Beitrag fasse ich zusammen, wie man `uv` installiert und wie man es benutzt.

## Setup

Am einfachsten installiert man `uv` mit Homebrew:

```bash
brew install uv
```

Aber auch eine direkte [Installation](https://docs.astral.sh/uv/#installation) is möglich:

```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```

## Verwendung

Um die Vorteile bei der Verwendung von `uv` hervorzuheben, wird später kurz die alte Herangehensweise gezeigt, mit der man Abhängigkeiten in einer Python-Umgebung verwaltet, und wie man ein so eingerichtetes Projekt in ein `uv`-Projekt migriert.

### Herangehensweise mit `uv`

Ein neues Projekt kann initialisiert werden mit:

```bash
uv init APP_NAME
```

Alternativ kann ein `uv`-Projekt in einem bereits existierenden Ordner initialisiert werden, indem man in den Ordner navigiert und dort dann denselben Befehl aber ohne Projektnamen eingibt:

```bash
uv init
```

Somit wird ein einfaches Python-Projekt erstellt, inklusive Versionsverwaltung mit `git` (im Ordner `.git`) und Umgebungsverwaltung (im Ordner `.venv`). Beim Initialisieren können auch Argumente angegeben werden, wie z.B.:

- `--app` mit der eine Anwendung erzeugt wird, oder
- `--lib` mit der eine teilbare Bibliothek erstellt wird.

Neue Abhängigkeiten werden dann installiert mit:

```bash
uv add xxxx
```

Abhängigkeiten zu löschen geht mit:

```bash
uv remove xxx
```

Die installierten Abhängigkeiten wurde nun installiert und in der Datei `pyproject.toml` angegeben, sodass die `uv`-Umgebung geteilt werden kann. Die Abhängigkeiten können auch eingesehen werden, mit:

```brew
uv tree
```

Ausgeführt wird Code durch `uv` mit:

```bash
uv run main.py
```

Löscht man nun die virtuelle Umgebung (also den Ordner `.venv`), kann `uv` den Code weiterhin ausführen, da es automatisch (unter Bezug auf die Datei `project.toml`) alle Abhängigkeiten neu in eine virtuelle Umgebung installiert.

Möchte man die virtuelle Umgebung automatisch einrichten, ohne den Code ausführen zu müssen, tut man dies mit:

```bash
uv sync
```

Um eine bestimmte Version von Python zu installieren verwendet man:

```bash
uv python install 3.10 3.11 3.12
```

Und die zu verwendende Version kann dann ausgewählt werden, mit:

```bash
uv python pin 3.11
```

Verfügbare Versionen von Python können so abgefragt werden:

```bash
uv python list
```

### Die alte Herangehensweise

Eine virtuelle Umgebung wird erstellt mit:

```bash
python -m venv .venv
```

Sie wird aktiviert mit:

```bash
source .venv/bin/activate
```

Abhängigkeiten werden über `pip` in die nun aktivierte Umgebung installiert mit:

```bash
pip install xxxx
```

Um die installierten Abhängigkeiten für spätere Reproduzierbarkeit zu speichern, verwendet man den folgenden Befehl:

```bash
pip freeze > requirements.txt
```

Die so erhaltene Datei kann Abhängigkeiten in eine (insbesondere in eine noch nicht eingerichtete) Umgebung installieren, mit:

```bash
pip install -r requirements.txt
```

Code (z.B. in einer Datei namens `main.py`) wird dann ausgeführt, mit:

```bash
python main.py
```

Und die Umgebung kann deaktiviert werden mit:

```bash
deactivate
```

Möchte man die Python version ändern, muss z.B. `pyenv` installiert werden, sodass dann die gewünschte Version installiert und aktiviert werden kann, um dann die virtuelle Umgebung (`.venv`) wie vorstehend beschrieben neu einzurichten.

### Migration zu `uv`

Hat man eine nur mit `pip` (oder `uv pip`) eingerichtetes Projekt, kann man es zu `uv` migrieren, indem man zuerst ein `uv`-Projekt initialisiert:

```bash
uv init
```

Danach können alle Abhängigkeiten installiert werden, mit:

```bash
uv add -r requirements.txt
```

Die Date `requirements.txt` ist dann nicht mehr nötig und kann gelöscht werden.

---

## Navigation

- Parent: [Home](https://gerfficient.com/de/index.md)
- Previous: [LLM-Modellformate, Konvertierung und Quantisierung](https://gerfficient.com/de/home/model-quantization.md)
- Next: [React in 2025](https://gerfficient.com/de/home/react-in-2025.md)
