Python | Arbeiten mir virtuellen Umgebungen
Inhaltsverzeichnis
Allgemein
Virtuelle Umgebung stellen eigenständige Umgebungen dar, in denen Programme und Pakete installiert/modifiziert werden können ohne die Betriebssystemumgebung zu verändern.
Dadurch können zum Beispiel andere Versionen von Python oder von Python-Modulen getestet werden.
Technisch gesehen ist eine virtuelle Umgebung ein Verzeichnis, in dem die gewünschten Pakete und Programme bzw. die gewünschte Python-Version installiert ist. Entsprechend werden die notwendigen Umgebungsvariablen modifiziert: PATH, PYTHONLIB, …
Arbeiten mit einer virtuellen Umgebung
- Virtuelle Umgebung einrichten/installieren (einmalig)
- Virtuelle Umgebung aktivieren
- “Arbeiten” in der Umgebung, z. B ein Python-Programm ausführen
- Virtuelle Umgebung deaktivieren
Einrichten einer virtuellen Umgebung
Zur Unterstützung von virtuellen Umgebungen gibt es mehrere Programme/Pakete
- venv
- poetry
- pyenv
- virtualenv
venv
Installation
Einrichten einer virtuellen Umgebung
➜ python -m venv .venv ➜ pip -V pip 21.2.4 from D:\python\venv\lib\site-packages\pip (python 3.9) ➜ & .\.venv\Scripts\Activate.ps1 ➜ pip -V pip 21.1.3 from d:\venv\.venv\lib\site-packages\pip (python 3.9)
poetry
Installation
$ pip install poetry
Einrichten einer virtuellen Umgebung
$ poetry new app Created package app in app $ cd app $ tree . . ├── README.rst ├── app │ └── __init__.py ├── pyproject.toml └── tests ├── __init__.py └── test_app.py 2 directories, 5 files
$ poetry config virtualenvs.create true --local $ poetry config virtualenvs.in-project true --local
$ tree . . ├── README.rst ├── app │ └── __init__.py ├── poetry.toml ├── pyproject.toml └── tests ├── __init__.py └── test_app.py 2 directories, 6 files
Inhalt der Projektdatei poetry.toml
[virtualenvs] create = true in-project = true
➜ poetry install Updating dependencies Resolving dependencies... Writing lock file Package operations: 10 installs, 0 updates, 0 removals • Installing pyparsing (2.4.7) • Installing atomicwrites (1.4.0) • Installing attrs (21.2.0) • Installing colorama (0.4.4) • Installing more-itertools (8.8.0) • Installing packaging (21.0) • Installing pluggy (0.13.1) • Installing py (1.10.0) • Installing wcwidth (0.2.5) • Installing pytest (5.4.3) Installing the current project: app (0.1.0)
$ tree . . ├── README.rst ├── app │ └── __init__.py ├── poetry.lock ├── poetry.toml ├── pyproject.toml └── tests ├── __init__.py └── test_app.py
virtualenv
Installation
Installation des Paketes pyenv
$ brew install pyenv-virtualenv
Anpassen der Bash Startdatei .bashrc
if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)" fi
Virtuelle Umgebung einrichten
Auflisten aller zur Verfügung stehenden Python Versionsn
$ pyenv install --list
Installation einer Python Version
pyenv install 3.7.2
Auflisten aller installierten Versionen
$ pyenv versions * system (set by /Users/<your username>/.pyenv/version) 2.7.14 3.7.1 3.7.2
# Python 2 $ pyenv virtualenv 2.7.14 venv
# Python 3 $ pyenv virtualenv 3.7.2 venv
Umgebungen anzeigen: die letzen beiden Zeilen zeigen die soeben eingerichtete Umgebung an
$ pyenv versions * system (set by /Users/RalphG/.pyenv/version) 2.7.14 3.7.1 3.7.2 3.7.2/envs/venv venv
Alternativ: nur die virtuellen Umgebungen anzeigen
$ pyenv virtualenvs
Umgebung aktivieren / deaktivieren
$ pyenv activate <name> $ pyenv deactivate
Umgebung testen
$ which python ~/pkg.virtualenv/bin/python
Das Paket virtualenv
Installation
$ pip install virtualenv
Erstellen einer virtuellen Umgebung
Feststellen des Pfades der gewünschten Python Version
Python 2
$ which python2 /usr/local/bin/python2
Python 3
$ which python3 /usr/local/bin/python3
Einrichten der virtuellen Umgebung
Python 2
$ virtualenv venv2 --python /usr/local/bin/python2
Python 3
$ virtualenv venv3 --python /usr/local/bin/python3
Leave a Reply