Virtual Environments
mit PIP
Mit der Funktion des Venv (Virtual Environments) wird projektbezogen eine eigene - und damit unabhängig von der Basis-Installation) eine eigene Python-Umgebung erzeugt.
Vorbereitung Linux
Python ist bei den gängigen Linux-Distributionen bereits installiert. Der folgende Aufruf testet das Vorhandensein von pip:
python3.13 -m pip list
Package Version
------- -------
pip 24.3.1
Ansonsten:
sudo apt-get install python3-pip
Es sollte das Projekt MyProj erzeugt und bearbeitet werden.
Variante: zu Fuss
-
Erzeugen eines Projektverzeichnisses:
mkdir z:/py/MyProj
cd py\MyProj`
-
Generieren des Venv:
py -m venv .venv
python3.13 -m venv .venv
-
Aktivieren des Venv
.venv\Scripts\activate.bat
bash /home/pi/py/.venv/bin/activate
-
Test des Venv
pip list
AusgabePackage Version ------- ------- pip 23.3.1
- Installation eines Package:
pip install numpy
AusgabeCollecting numpy Downloading numpy-1.26.2-cp312-cp312-win_amd64.whl.metadata (61 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.2/61.2 kB 1.6 MB/s eta 0:00:00 Downloading numpy-1.26.2-cp312-cp312-win_amd64.whl (15.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.5/15.5 MB 29.7 MB/s eta 0:00:00 Installing collected packages: numpy Successfully installed numpy-1.26.2 (.venv) Z:\py\MyProj>pip list Package Version ------- ------- numpy 1.26.2 pip 23.3.1
Info
mehr zu pip
Variante: VS-Code
Es wird ein Projektordner angelegt und mit Ctrl+K+O ausgewählt. Mit der Taste Ctrl+Shift+P wird der Befehl "Python: Umgebung erstellen..." ausgewählt
Sobald ein Python-File gestartet werden soll, aktiviert VS-Code das Venv automatisch!
Linux-Service anlegen
Für den Start eines Linux-Service muss anstatt dem globalen Python-Interpreter der Interpreter des Venv /home/myuser/py/gw08a/.venv/bin/python
aufgerufen werden.
[Unit]
Description=GateWay service
After=network.target
[Service]
ExecStart=/home/myuser/py/gw08a/.venv/bin/python -u gateW.py
WorkingDirectory=/home/myuser/py/gw08a
StandardOutput=inherit
StandardError=inherit
Restart=always
User=myuser
[Install]
WantedBy=multi-user.target
UV
Die Installation ist in Kapitel beschrieben.
Projekt anlegen
Ein py-Projekt kann (muss aber nicht) mit einem virtuellen Enviroment für Python angelegt werden. Wesentlich für die Entwicklung und Pflege ist die Versionsabhängigkeit der py-App von der Version des Python-Interpreters und der benötigten Packages. Hier unterstützt UV.
uv init exa
Es entsteht folgende Datei-Struktur:
├───exa
│ .python-version
│ main.py
│ pyproject.toml
│ README.md
mit den Dateiinhalten:
def main():
print("Hello from exa!")
if __name__ == "__main__":
main()
[project]
name = "exa"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []
Venv erzeugen
Ein mit UV erzeugtes virtuelles Enviroment (Venv) wird direkt in die Projektverwaltung integriert.
cd exa
uv venv
Ausgabe:
Using CPython 3.13.4 interpreter at: C:\py\Python313\python.exe
Creating virtual environment at: .venv
Activate with: .venv\Scripts\activate
In VS Code kann dieses Venv wie gewohnt ausgewählt und genutzt werden.
Packages installieren
Ein Package (oder mehrere) lassen sich direkt mit UV installieren:
Beispiel
uv add fastapi
Resolved 12 packages in 154ms
░░░░░░░░░░░░░░░░░░░░ [0/10] Installing wheels...
warning: Failed to hardlink files; falling back to full copy. This may lead to degraded performance.
If the cache and target directories are on different filesystems, hardlinking may not be supported.
If this is intentional, set `export UV_LINK_MODE=copy` or use `--link-mode=copy` to suppress this warnin
g.
Installed 10 packages in 60ms
+ annotated-types==0.7.0
+ anyio==4.9.0
+ fastapi==0.115.12
+ idna==3.10
+ pydantic==2.11.5
+ pydantic-core==2.33.2
+ sniffio==1.3.1
+ starlette==0.46.2
+ typing-extensions==4.14.0
+ typing-inspection==0.4.1
[project]
name = "exa"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
"fastapi>=0.115.12"
]
Die Installation mit Hilfe einer requirements.txt
funktioniert entsprechend analog zu pip:
uv add -r requirements.txt
oder im übergeordneten bzw. zur Zeit aktivierten Venvuv :
uv pip install -r requirements.txt
UV-Infos
Mehr Infos finden sich auf derUV-Dokumentation: Doku