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
Arbeiten mit einer virtuellen Umgebung