Betrieb der Terkin-Sandbox für MicroPython auf Debian GNU/Linux 9 (stretch) oder Ubuntu 14.04.6 LTS (Trusty Tahr)

Einleitung

Zusammen mit @wtf haben wir neulich versucht, die Sandbox des Terkin-Datenloggers auf seiner Ubuntu-Workstation zu installieren. Wir hatten leider Probleme, da auf Ubuntu 14 leider nur Python in der Version 3.5.3 verfügbar war, genauso verhält es sich auch mit Debian 9. Die Sandbox benötigt jedoch mindestens Python 3.6.x.

Daneben gab es an manchen Stellen vielleicht noch weitere Probleme, im Wesentlichen handelte es sich aber um die ordentliche Installation einer moderneren Python 3 Umgebung.

Pyenv to the rescue

Einleitung

For solche Angelegenheiten bietet das exzellente GitHub - pyenv/pyenv: Simple Python version management Abhilfe. Ähnlich wie https://virtualenv.pypa.io/ schafft es die Möglichkeit, vom System isolierte Python-Umgebungen zu betreiben. Im Gegensatz zu virtualenv, das diese Aspekte auf Modulebene realisiert, wirkt pyenv auf der Ebene der kompletten Python-Installation.

Installation

Paketinstallation

Auf manchen Systemen steht pyenv bereits als Paket zur Verfügung. z.B. auf macOS kann es per

brew install pyenv

installiert werden.

Auf anderen Systemen kann der pyenv-installer weiterhelfen: https://github.com/pyenv/pyenv-installer.

Aktivierung

Damit pyenv seinen Dienst ordentlich verrichten kann, muss es die Möglichkeit haben, sich über sogenannte shims in den Betrieb einzuklinken.

Das klappt, in dem man z.B. in der Datei ~/.bash_profile – möglichst am Ende – folgende Initialisierung vornimmt:

eval "$(pyenv init -)"

Abschließend sollte die Terminal-Shell neugestartet oder durch exec "$SHELL" neu initialisiert werden.

Benutzung

Um in einem bestimmten Pfad – z.B. innerhalb eines Klons des Terkin-Repositories – eine spezifische Python-Version zu benutzen zu können, empfiehlt sich die Nutzung des Mechanismus über eine .python-version Datei, die man einfach im lokalen Verzeichnis anlegt – siehe auch Choosing the Python Version.

In diese trägt man einfach die gewünschte Version ein. Auf Ubuntu 14.04 empfiehlt sich aufgrund von Problemen mit dem allerneuesten Python 3.7.x besser die Version 3.6.9.

Ergo:

cat .python-version
3.6.9

Initialisiert wird diese Version dann mit einem einfachen Aufruf von "pyenv install" im jeweiligen Verzeichnis.