VENV
In Python gibt es mehrere Möglichkeiten ein virtuelles Environment zu erstellen. Eine davon ist das Modul „venv“:
python -m venv myenvUm das Environment zu aktivieren benötigt man diesen Befehl:
# unter Windows
myenv\Scripts\activate
# unter macOS und Linux:
source myenv/bin/activate
Danach kann man seine Pakete installieren mit:
pip install paketnameUm das Environment zu deaktivieren verwendet man
deactivateUm das Environment zu löschen:
rm -r myenvConda
Verwendet man Conda, dann geht das so:
conda create --name myenv python=3.10Um das Environment zu aktivieren:
conda activate myenvPakete kann man dann mit conda oder mit pip installieren:
conda install paketname
pip install paketnameDeaktivieren geht mit
conda deactivateListe aller Environments:
conda env listEnvironment löschen:
conda remove --name myenv --allRequirements
Um die Abhängigkeiten eines virtuellen Environments zu dokumentieren verwendet man standardmäßig die Datei „requirements.txt“.
Mit pip wird diese folgendermaßen erzeugt:
pip freeze > requirements.txtAnschließend kann man die Abhängigkeiten in neuen Umgebungen folgendermaßen installieren:
pip install -r requirements.txtIn Conda verwendet man stattdessen eine environment.yml Datei:
conda env export --name myenv > environment.ymlDiese kann man dann so verwenden:
conda env create -f environment.ymlFür pip-basierte Pakete kann man aber auch in conda mit pip und requirements.txt arbeiten. Allerdings erzeugt pip freeze in Verbindung mit Anaconda eine requirements.txt die lokale Pfade enthält. Für eine „saubere“ requirements.txt mit conda und pip verwendet man die Option format=freeze:
pip list --format=freeze > requirements.txtUV
UV ist eine weitere Alternative zu pip oder conda. Es ist ein modernes und extrem schnelles Tool für Python Package Management. Es kann direkt mit pip installiert werden:
pip install uvEin virtuelles Environment in UV erstellt man so:
uv venv .venv # Erstellt eine virtuelle Umgebung (wie virtualenv)
source .venv/bin/activate # (Windows: .venv\Scripts\activate)Pakete installieren kann man ähnlich wie mit pip, funktioniert aber deutlich schneller:
uv pip install numpy pandas matplotlibStatt einer requirements.txt nutzt uv standardmäßig pyproject.toml um installierte Pakete als Konfigurationsdatei zu speichern:
uv pip freeze > pyproject.tomlAnschließend kann man die Requirements in einer anderen Umgebung installieren:
uv pip install