Mit uv lassen sich mehrere Python-Versionen zentral auf einem Linux-System installieren und anschließend für unterschiedliche Projekte in voneinander getrennten virtuellen Umgebungen verwenden.
Dieses Setup verfolgt eine klare Trennung:
- Python-Versionen werden zentral unter
/opt/pythoninstalliert. uvwird systemweit unter/usr/local/bin/uvbereitgestellt.- Virtuelle Umgebungen werden pro Benutzer und Projekt erstellt.
- Python-Pakete werden ausschließlich innerhalb der jeweiligen virtuellen Umgebung installiert.
Zielstruktur
|
1 2 3 4 5 6 7 8 9 10 |
/usr/local/bin/uv /opt/python/ ├── 3.12.x/ ├── 3.13.x/ └── 3.14.x/ /home/User/ └── projekt/ └── .venv/ |
1. Verzeichnis für zentrale Python-Versionen erstellen
Die folgenden Befehle werden als root ausgeführt:
|
1 2 |
sudo mkdir -p /opt/python sudo chmod 755 /opt/python |
2. uv systemweit installieren
Die Installation von uv erfolgt ebenfalls als root:
|
1 |
sudo curl -LsSf https://astral.sh/uv/install.sh | sudo env UV_INSTALL_DIR=/usr/local/bin sh |
Anschließend kann die Installation überprüft werden:
|
1 |
uv --version |
uv befindet sich anschließend unter:
|
1 |
/usr/local/bin/uv |
3. Python-Versionen zentral installieren
Python-Versionen können mit uv direkt in das zentrale Installationsverzeichnis installiert werden.
Beispiel für Python 3.12:
|
1 |
sudo uv python install 3.12 --install-dir /opt/python |
Weitere Versionen können entsprechend installiert werden:
|
1 2 |
sudo uv python install 3.13 --install-dir /opt/python sudo uv python install 3.14 --install-dir /opt/python |
Die genaue Verzeichnisstruktur innerhalb von /opt/python wird von uv verwaltet und sollte nicht manuell verändert werden.
4. Berechtigungen festlegen
Die zentral installierten Python-Versionen sollen von allen Benutzern verwendet, aber nur von root verändert werden können:
|
1 2 |
sudo chown -R root:root /opt/python sudo chmod -R a+rX /opt/python |
| Benutzer | Berechtigung |
|---|---|
root |
Lesen, Ausführen und Verändern |
| Normale Benutzer | Lesen und Ausführen |
5. Installationsverzeichnis für uv festlegen
Damit uv das zentrale Python-Verzeichnis dauerhaft verwendet, wird die Umgebungsvariable systemweit gesetzt:
|
1 2 |
echo 'export UV_PYTHON_INSTALL_DIR=/opt/python' | sudo tee /etc/profile.d/uv-python.sh sudo chmod 644 /etc/profile.d/uv-python.sh |
Für die aktuelle Sitzung kann die Konfiguration sofort geladen werden:
|
1 |
source /etc/profile.d/uv-python.sh |
Die Konfiguration kann anschließend überprüft werden:
|
1 |
uv python dir |
Erwartetes Ergebnis:
|
1 |
/opt/python |
6. Installierte Python-Versionen anzeigen
Mit folgendem Befehl lassen sich die von uv verfügbaren und installierten Python-Versionen anzeigen:
|
1 |
uv python list |
7. Virtuelle Umgebung für einen Benutzer erstellen
Die folgenden Schritte werden als Benutzer User ausgeführt.
Zunächst wird ein Projektverzeichnis erstellt:
|
1 2 |
mkdir ~/projekt cd ~/projekt |
Anschließend wird eine virtuelle Umgebung mit bespielsweise Python 3.12 erstellt:
|
1 |
uv venv --python 3.12 |
Dadurch entsteht:
|
1 2 |
/home/User/projekt/ └── .venv/ |
Die virtuelle Umgebung gehört vollständig dem Benutzer User.
8. Virtuelle Umgebung aktivieren
|
1 |
source .venv/bin/activate |
Die verwendete Python-Version kann anschließend überprüft werden:
|
1 |
python --version |
Beispielsweise:
|
1 |
Python 3.12.x |
Auch der tatsächlich verwendete Python-Interpreter kann kontrolliert werden:
|
1 |
which python |
Erwartetes Ergebnis:
|
1 |
/home/User/projekt/.venv/bin/python |
9. Python-Pakete mit uv installieren
Pakete werden innerhalb der virtuellen Umgebung mit uv installiert:
|
1 |
uv pip install requests |
Weitere Pakete können beispielsweise so installiert werden:
|
1 |
uv pip install flask fastapi |
Die Pakete werden ausschließlich in der virtuellen Umgebung des jeweiligen Projekts installiert.
Die zentrale Python-Installation unter /opt/python bleibt dabei unverändert.
Ergebnis
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
root │ /usr/local/bin/uv │ /opt/python/ │ │ │ 3.12 3.13 3.14 │ │ │ └────┼────┘ │ uv venv │ /home/User/ │ projekt/ │ .venv/ │ eigene Pak |
| Bereich | Verantwortlich | Zweck |
|---|---|---|
/usr/local/bin/uv |
root |
Zentrales Werkzeug |
/opt/python/ |
root |
Zentrale Python-Versionen |
~/projekt/.venv/ |
User |
Virtuelle Umgebung |
Pakete innerhalb von .venv |
User |
Projektabhängigkeiten |
Eine Python-Version, beispielsweise Python 3.13, wird damit nur einmal zentral installiert. Der Benutzer User kann daraus beliebig viele eigene virtuelle Umgebungen erstellen, ohne die zentrale Python-Installation oder andere Projekte zu verändern.
by Speefak