Während der Feiertage bin ich auf ein interessantes Problem bei meinen Eltern gestoßen. Sie pflegen eine Excel-Tabelle mit ihren DVD-Beständen, d. h. welcher Film ist in welcher Tasche. Allein die Meta-Informationen (Filmlänge, Genre etc.) fehlen. Da lässt sich doch sicher eine Anwendung für schreiben …
Gesagt, getan. Ich möchte das Vorgehen hier in einer Artikel-Reihe beschreiben. Ganz fertig bin ich noch nicht, aber vielleicht kennt ja jemand von euch eine Lösung für mein Design-Problem … Die Anwendung ist in Python unter GNU/Linux geschrieben und sollte sowohl unter Python 2.7 als auch unter Python 3.4 laufen.
Die Anleitung gliedert sich in mehrere Teile:
- VirtualEnv einrichten und Abhängigkeiten installieren
- Grundlegendes Design entwickeln
- Input entgegennehmen
- Input verarbeiten
- Ergebnis aufbereiten
In diesem Artikel geht es um den ersten Schritt:
VirtualEnv einrichten und Abhängigkeiten installieren
Hä? VirtualEnv? Was ist denn das nun schon wieder?
Bei der Entwicklung von Anwendungen kann es passieren, dass verschiedene Projekte unterschiedliche Versionen von ihren Abhängigkeiten erwarten. Ich schreibe hier beispielsweise eine Anwendung für Python 2.7 (und 3.4). Du hast vielleicht ein etwas älteres Projekt, was noch Python 3.3 einsetzt. Würdest du jetzt alle Python Module systemweit installieren, könnte es schnell Konflikte geben, weil die Version “nicht passt”.
VirtualEnv richtet dir in einem Ordner deine “eigene Systemumgebung” ein, in der du für genau diese Python-Version die Module installieren kannst. Dabei wird pip eingesetzt, was easy_install ablöste.
Sofern noch nicht geschehen, installiere dir Python (sollte auf den meisten GNU/Linux-Distributionen vorinstalliert sein).
Danach holt euch pip (je nach Python-Version kann es dabei verschiedene Pakete geben).
Über pip holen wir uns jetzt virtualenv: sudo pip install virtualenv
. Anschließend wird ein Ordner angelegt, in dem der Projekt-Code liegt sowie ein Ordner für die virtuelle Umgebung, letztere aktiviert und in das Projektverzeichnis gewechselt
cd $HOME mkdir -p src/imdb-complemented-dvd # Projektverzeichnis anlegen mkdir -p .virtualenvs/imdb-complemented-dvd # Ordner für VirtualEnv virtualenv "$(pwd)"/.virtualenvs/imdb-complemented-dvd # VirtualEnv anlegen source "$(pwd)"/.virtualenvs/imdb-complemented-dvd/bin/activate # VirtualEnv aktivieren cd src/imdb-complemented-dvd # wechsle ins Projektverzeichnis
Zum Prüfen, ob alles geklappt hat, folgende Befehle ausgeben:
echo "$HOME"
pwd
echo "$VIRTUAL_ENV"
Die erste Ausgabe lautet im Allgemeinen etwas wie “/home/<DEIN_NUTZERNAME>“, die zweite hängt an die Ausgabe “/src/imdb-complemented-dvd” an, während die dritte “/.virtualenvs/imdb-complemented-dvd” anhängt. Bei Problemen lasst mir einen Kommentar da 😉
Da wir uns jetzt in einer VirtualEnv befinden, können wir munter fröhlich unsere Abhängigkeiten installieren. Ich verwende für die Anleitung Tkinter.
Aber Tkinter ist doch potthässlich und überhaupt?!
Ja, das war einmal. Allerdings ist laut Doku nur Qt und Tkinter Python-3-kompatibel. Die anderen GUI-Bibliotheken dürften als experimentell eingestuft werden. Und für Qt brauchst du eine Lizenz, sofern du die Anwendung kommerziell nutzt. Tkinter unterstützt zudem unterschiedliche Betriebssysteme.
python -m Tkinter # Ein kleines Demo-Fenster sollte auftauchen, ansonsten: python -m tkinter
Schon praktisch, wenn das Modul mitgeliefert wird, eh? Falls ihr Tkinter selber installieren wollt, müsst ihr es herunterladen und bauen. Von daher sehe ich hier einmal von einer projektspezifischen Installation ab.
Weitere Abhängigkeiten:
pip install imdbpy # Python-Wrapper um IMDb-“API” pip install xlrd # Excel read, also zum Lesen von .xls pip install xlwt # Excel write, also zum Schreiben von .xls
Soll reichen für den Anfang 🙂 Danke für’s Lesen!
Bin gespannt auf die Umsetzung 😉 warte auf Teil 2.