Kapitel 1. Entwicklung einrichten

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

In diesem Kapitel geht es um die Downloads und Softwareinstallationen, die für die Nutzung dieses Buches erforderlich sind, und um eine empfohlene Entwicklungsumgebung. Wie du sehen wirst, ist das nicht so aufwändig, wie es vielleicht einmal war. Ich gehe separat auf die Abhängigkeiten von Python und JavaScript ein und gebe einen kurzen Überblick über sprachenübergreifende IDEs.

Der begleitende Code

Es gibt ein GitHub-Repository für den Großteil des in diesem Buch behandelten Codes, einschließlich der vollständigen Nobelpreis-Visualisierung. Um darauf zuzugreifen, musst du nur einen Git-Clone in ein geeignetes lokales Verzeichnis erstellen:

$ git clone https://github.com/Kyrand/dataviz-with-python-and-js-ed-2.git

Dies sollte ein lokales dataviz-with-python-and-js-v2 Verzeichnis mit dem wichtigsten Quellcode des Buches erstellen.

Python

Der Großteil der in diesem Buch behandelten Bibliotheken basiert auf Python, aber was ein schwieriger Versuch gewesen wäre, umfassende Installationsanweisungen für die verschiedenen Betriebssysteme und ihre Eigenheiten zu geben, wird durch die Existenz von Anaconda, einer Python-Plattform, die die meisten der beliebten Analysebibliotheken in einem praktischen Paket bündelt, wesentlich erleichtert. Das Buch geht davon aus, dass du Python 3 verwendest, das 2008 veröffentlicht wurde und inzwischen fest etabliert ist.

Anaconda

Die Installation einiger größerer Python-Bibliotheken war früher eine Herausforderung für sich, vor allem für solche wie NumPy, die von komplexen Low-Level-C- und Fortran-Paketen abhängen. Heute ist das viel einfacher, und die meisten lassen sich problemlos über easy_install mit dem Befehl pip installieren:

$ pip install NumPy

Aber einige große Bibliotheken, die Zahlen verarbeiten, sind immer noch schwierig zu installieren. Die Verwaltung von Abhängigkeiten und die Versionskontrolle (es kann sein, dass du verschiedene Python-Versionen auf demselben Rechner verwenden musst) können die Sache noch komplizierter machen, und genau hier kommt Anaconda ins Spiel. Anaconda kümmert sich um die Überprüfung von Abhängigkeiten und die Installation von Binärdateien, damit du dich nicht darum kümmern musst. Außerdem ist es eine sehr praktische Ressource für ein Buch wie dieses.

Um deine kostenlose Anaconda-Installation zu erhalten, musst du nur mit deinem Browser zur Anaconda-Website navigieren, die Version für dein Betriebssystem auswählen (idealerweise mindestens Python 3.5) und den Anweisungen folgen. Für Windows und OS X gibt es ein grafisches Installationsprogramm (einfach herunterladen und doppelklicken), während du für Linux ein kleines Bash-Skript ausführen musst:

$ bash Anaconda3-2021.11-Linux-x86_64.sh

Hier ist die neueste Anleitung für die Installation:

Ich empfehle, bei der Installation von Anaconda die Standardeinstellungen beizubehalten.

Die offizielle Prüfungsanleitung findest du auf der Anaconda-Website. Windows- und macOS-Benutzer können die Navigator-GUI von Anaconda verwenden oder, wie Linux-Benutzer, die Conda-Befehlszeilenschnittstelle.

Zusätzliche Bibliotheken installieren

Anaconda enthält fast alle Python-Bibliotheken, die in diesem Buch behandelt werden (eine vollständige Liste der Anaconda-Bibliothekspakete findest du in der Anaconda-Dokumentation ). Wenn wir eine Bibliothek benötigen, die nicht von Anaconda stammt, können wir pip (kurz für Pip Installs Python), den De-facto-Standard für die Installation von Python-Bibliotheken. Die Installation mit pip ist denkbar einfach. Rufe einfach pip install gefolgt von dem Namen des Pakets auf der Kommandozeile auf und es sollte installiert werden oder mit etwas Glück eine sinnvolle Fehlermeldung ausgeben:

$ pip install dataset

Virtuelle Umgebungen

Virtuelle Umgebungen bieten eine Möglichkeit, eine Sandbox-Entwicklungsumgebung mit einer bestimmten Python-Version und/oder einem Satz von Drittanbieter-Bibliotheken zu erstellen. Die Verwendung dieser virtuellen Umgebungen verhindert, dass dein globales Python mit diesen Installationen verunreinigt wird, und gibt dir viel mehr Flexibilität (du kannst mit verschiedenen Paketversionen spielen oder deine Python-Version ändern, wenn es nötig ist). Die Verwendung virtueller Umgebungen wird immer mehr zu einer bewährten Methode in der Python-Entwicklung, und ich empfehle dir dringend, dich daran zu halten.

Anaconda wird mit dem Systembefehl conda ausgeliefert, der das Erstellen und Verwenden von virtuellen Umgebungen erleichtert. Für dieses Buch wollen wir eine spezielle Umgebung erstellen, die auf dem vollständigen Anaconda-Paket basiert:

$ conda create --name pyjsviz anaconda
...
#
# To activate this environment, use:
# $ source activate pyjsviz
#
# To deactivate this environment, use:
# $ source deactivate
#

Wie die abschließende Meldung sagt, brauchst du für die Nutzung dieser virtuellen Umgebung nur source activate (bei Windows-Rechnern kannst du das source weglassen):

$ source activate pyjsviz
discarding /home/kyran/anaconda/bin from PATH
prepending /home/kyran/.conda/envs/pyjsviz/bin to PATH
(pyjsviz) $

Du bekommst einen hilfreichen Hinweis in der Kommandozeile, der dir sagt, welche virtuelle Umgebung du verwendest.

Der Befehl conda kann viel mehr, als nur virtuelle Umgebungen zu ermöglichen. Er kombiniert unter anderem die Funktionen des Python-Installers pip und des Befehls virtualenv. Eine ausführliche Beschreibung findest du in der Anaconda-Dokumentation.

Wenn du dich mit den virtuellen Standardumgebungen von Python auskennst, ist es viel einfacher, mit ihnen zu arbeiten, da sie in die Standardbibliothek von Python aufgenommen wurden. So erstellst du eine virtuelle Umgebung über die Befehlszeile:

$ python -m venv python-js-viz

Dabei wird ein Verzeichnis python-js-viz erstellt, das die verschiedenen Elemente der virtuellen Umgebung enthält. Dazu gehören auch einige Aktivierungsskripte. Um die virtuelle Umgebung unter macOS oder Linux zu aktivieren, führe das Skript activate aus:

$ source python-js-viz/bin/activate

Auf Windows-Rechnern führst du die .bat-Datei aus:

$ python-js-viz/Scripts/activate.bat

Du kannst dann pip verwenden, um die Python-Bibliotheken in der virtuellen Umgebung zu installieren und so zu vermeiden, dass deine globale Python-Distribution verschmutzt wird:

$ (python-js-viz) pip install NumPy

Um alle für dieses Buch benötigten Bibliotheken zu installieren, kannst du die Datei requirements.txt im GitHub-Repository des Buches verwenden:

$ (python-js-viz) pip install -r requirements.txt

Informationen zur virtuellen Umgebung findest du in der Python-Dokumentation.

JavaScript

Die gute Nachricht ist, dass du gar nicht viel JavaScript-Software brauchst. Das einzige Muss ist der Chrome/Chromium-Webbrowser, der in diesem Buch verwendet wird. Er bietet die leistungsfähigsten Entwicklerwerkzeuge aller aktuellen Browser und ist plattformübergreifend.

Um Chrome herunterzuladen, gehe einfach auf die Homepage und lade die Version für dein Betriebssystem herunter. Diese sollte automatisch erkannt werden.

Alle JavaScript-Bibliotheken, die in diesem Buch verwendet werden, sind im zugehörigen GitHub-Repository zu finden, aber es gibt im Allgemeinen zwei Möglichkeiten, sie an den Browser zu liefern. Du kannst ein Content-Delivery-Network (CDN) verwenden, das eine Kopie der Bibliothek, die von diesem Netzwerk abgerufen wird, effizient zwischenlagert. Alternativ kannst du eine lokale Kopie der Bibliothek verwenden, die dem Browser zur Verfügung gestellt wird. Beide Methoden verwenden den script Tag in einem HTML-Dokument.

Content Delivery Networks

Bei CDNs werden die Bibliotheken nicht auf deinem lokalen Rechner installiert, sondern der Browser ruft das JavaScript über das Internet vom nächstgelegenen verfügbaren Server ab. Das sollte sehr schnell gehen - schneller, als wenn du die Inhalte selbst bereitstellst.

Um eine Bibliothek über das CDN einzubinden, verwendest du den üblichen <script> Tag, den du normalerweise am Ende deiner HTML-Seite platzierst. Der folgende Aufruf fügt zum Beispiel eine aktuelle Version von D3 hinzu:

<script
 src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.1.1/d3.min.js"
 charset="utf-8">
</script>

Lokale Installation von Bibliotheken

Wenn du JavaScript-Bibliotheken lokal installieren musst, weil du z. B. eine Offline-Entwicklung vorhast oder keine Internetverbindung garantieren kannst, gibt es eine Reihe von einfachen Möglichkeiten, dies zu tun.

Du kannst die einzelnen Bibliotheken einfach herunterladen und sie in den statischen Ordner deines lokalen Servers legen. Dies ist eine typische Ordnerstruktur. Bibliotheken von Drittanbietern kommen in das Verzeichnis static/libs im Stammverzeichnis, etwa so:

nobel_viz/
└── static
    ├── css
    ├── data
    ├── libs
    │     └── d3.min.js
    └── js

Wenn du die Dinge auf diese Weise organisierst, brauchst du für die Verwendung von D3 in deinen Skripten jetzt einen lokalen Dateiverweis mit dem Tag <script>:

<script src="/static/libs/d3.min.js"></script>

Datenbanken

Die empfohlene Datenbank für kleine bis mittelgroße Dataviz-Projekte ist das brillante, serverlose, dateibasierte, SQL-basierte SQLite. Diese Datenbank wird in der gesamten in diesem Buch vorgestellten Dataviz-Toolchain verwendet und ist die einzige Datenbank, die du wirklich brauchst.

Das Buch behandelt auch grundlegende Python-Interaktionen mit MongoDB, der beliebtesten nicht-relationalen oder NoSQL-Datenbank:

SQLite

SQLite sollte bei macOS- und Linux-Rechnern zum Standard gehören. Für Windows folgst du diesem Leitfaden.

MongoDB

Du findest Installationsanweisungen für die verschiedenen Betriebssysteme in der MongoDB-Dokumentation.

Beachte, dass wir die SQLAlchemy SQL-Bibliothek von Python entweder direkt oder über darauf aufbauende Bibliotheken verwenden werden. Das bedeutet, dass wir jedes SQLite-Beispiel in ein anderes SQL-Backend (z. B. MySQL oder PostgreSQL) umwandeln können, indem wir ein oder zwei Konfigurationszeilen ändern.

MongoDB einrichten und zum Laufen bringen

Die Installation von MongoDB kann etwas komplizierter sein als bei anderen Datenbanken. Wie bereits erwähnt, kannst du diesem Buch auch folgen, ohne dir die Mühe zu machen, die serverbasierte MongoDB zu installieren. Wenn du sie jedoch ausprobieren möchtest oder sie bei der Arbeit verwenden musst, findest du hier einige Installationshinweise:

Für OS X-Benutzer gibt es in den offiziellen Dokumenten eine Anleitung zur Installation von MongoDB.

Diese Windows-spezifische Anleitung aus den offiziellen Dokumenten sollte deinen MongoDB-Server zum Laufen bringen. Wahrscheinlich musst du Administratorrechte verwenden, um die notwendigen Datenverzeichnisse usw. zu erstellen.

In den meisten Fällen installierst du MongoDB auf einem Linux-basierten Server, meistens auf einer Ubuntu-Variante, die das deb-Dateiformat für die Bereitstellung ihrer Pakete verwendet. In den offiziellen MongoDB-Dokumenten wird eine Ubuntu-Installation gut beschrieben.

MongoDB verwendet ein Datenverzeichnis zum Speichern. Je nachdem, wie du es installierst, musst du es eventuell selbst erstellen. Auf OS X- und Linux-Systemen wird standardmäßig ein Datenverzeichnis neben dem Stammverzeichnis angelegt, das du mit mkdir als Superuser (sudo) erstellen kannst:

$ sudo mkdir /data
$ sudo mkdir /data/db

Dann willst du dir selbst das Eigentum übertragen:

$ sudo chown 'whoami' /data/db

Wenn du unter Windows die MongoDB Community Edition installierst, kannst du das erforderliche Datenverzeichnis mit dem folgenden Befehl erstellen:

$ cd C:\
$ md "\data\db"

Auf Linux-Rechnern wird der MongoDB-Server oft standardmäßig gestartet; unter Linux und OS X wird mit dem folgenden Befehl eine Serverinstanz gestartet:

$ mongod

Unter Windows Community Edition wird mit der folgenden Eingabeaufforderung eine Serverinstanz gestartet:

C:\mongodb\bin\mongod.exe

Einfaches MongoDB mit Docker

Die Installation von MongoDB kann kompliziert sein. Die aktuellen Ubuntu-Varianten (> Version 22.04) haben zum Beispiel inkompatible SSL-Libs. Wenn du Docker installiert hast, ist eine funktionierende Entwicklungs-DB auf dem Standard-Port 27017 nur einen einzigen Befehl entfernt:

$ sudo docker run -dp 27017:27017 -v local-mongo:/data/db
              --name local-mongo --restart=always mongo

So umgehst du Inkompatibilitäten mit lokalen Bibliotheken und dergleichen.

Integrierte Entwicklungsumgebungen

Wie ich in "The Myth of IDEs, Frameworks, and Tools" erkläre , brauchst du keine IDE, um in Python oder JavaScript zu programmieren. Die Entwicklungswerkzeuge, die moderne Browser, insbesondere Chrome, bieten, bedeuten, dass du eigentlich nur einen guten Code-Editor brauchst, um so ziemlich das optimale Setup zu haben.

Ein Vorbehalt ist, dass heutzutage JavaScript-Frameworks wie React, Vue und Svelte für fortgeschrittene Benutzer/innen von Vorteil sind, vor allem bei der Bearbeitung von Multiformat-Dateien (in denen HTML, CSS und JS zusammen eingebettet sind). Die gute Nachricht ist, dass das frei verfügbare Visual Studio Code (VSCode) zum De-facto-Standard für die moderne Webentwicklung geworden ist. Es gibt Plug-ins für so ziemlich alles und eine sehr große und aktive Community, sodass Fragen in der Regel schnell beantwortet und Fehler schnell gefunden werden.

Für Python habe ich ein paar spezielle IDEs ausprobiert, aber sie haben sich nie durchgesetzt. Was ich vor allem suchte, war ein vernünftiges Debugging-System. Das Setzen von Haltepunkten in Python mit einem Texteditor ist nicht besonders elegant, und die Verwendung des Kommandozeilen-Debuggers pdb fühlt sich manchmal ein bisschen zu altmodisch an. Allerdings verfügt Python über ein ziemlich gutes Logging-System, das dem eher klobigen Standard-Debugging die Kanten nimmt. VSCode ist ziemlich gut für die Python-Programmierung geeignet, aber es gibt einige Python-spezifische IDEs, die wohl noch ein bisschen besser sind.

Hier sind ein paar, die ich ausprobiert habe und die mir nicht missfallen haben, in beliebiger Reihenfolge:

PyCharm

Diese Option bietet solide Code-Unterstützung und gutes Debugging und würde bei einer Umfrage unter erfahrenen Pythonisten wahrscheinlich ganz oben auf der Liste der Lieblings-IDEs stehen.

PyDev

Wenn du Eclipse magst und mit dem großen Platzbedarf klarkommst, könnte dies genau das Richtige für dich sein.

Wing Python IDE

Dies ist eine solide Wette, mit einem großartigen Debugger und schrittweisen Verbesserungen über eineinhalb Jahrzehnte der Entwicklung.

Zusammenfassung

Mit kostenlosen Python-Paketen wie Anaconda und ausgefeilten JavaScript-Entwicklungstools in frei verfügbaren Webbrowsern sind die notwendigen Python- und JavaScript-Elemente deiner Entwicklungsumgebung nur ein paar Klicks entfernt. Füge einen Lieblingseditor und eine Datenbank deiner Wahl hinzu,1 und du bist so gut wie startklar. Es gibt zusätzliche Bibliotheken, wie z.B. node.js, die nützlich sein können, aber nicht unbedingt notwendig sind. Nachdem wir nun unsere Programmierumgebung eingerichtet haben, werden wir in den nächsten Kapiteln die Voraussetzungen für die Datenumwandlung entlang der Toolchain erlernen, angefangen mit einer Sprachbrücke zwischen Python und JavaScript.

1 SQLite eignet sich hervorragend für Entwicklungszwecke und benötigt keinen Server auf deinem Rechner.

Get Datenvisualisierung mit Python und JavaScript, 2. now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.