首页 >> 知识 >> Einrichten und Ausführen der Python Data Science

Einrichten und Ausführen der Python Data Science

Einführung

Letzte Aktualisierung: Sep. 2023

Die Data Scientists und Finanzcodierer müssen mit verschiedenen Data Science/Financial-Entwicklungstools interagieren, wie der Python-Verteilungsplattform Anaconda (oder Miniconda ), der Programmiersprache Python , der Programmiersprache R , der Matplotlib-Bibliothek , der Pandas Library , der Jupyter- Anwendung und viel mehr.

Einer der schwierigsten Teile des Seins als Datenentwickler ist der Schritt, diese Tools einzurichten. Sie müssen viele Software und Bibliotheken in der richtigen Reihenfolge installieren, um Ihre Data Science-Entwicklungsumgebung einzurichten. Die Beispielschritte sind die folgenden:

Python oder Anaconda/Miniconda installieren Erstellen Sie eine neue virtuelle Umgebung (Es wird nicht empfohlen, Programme in Ihrer Basisumgebung zu installieren) Jupyter installieren Installieren Sie Data Science-Bibliotheken wie Matplotlib, Pandas, Plotly, Bokeh usw. Wenn Sie R verwenden, installieren Sie R und dann seine Bibliotheken Wenn Sie Julia verwenden, installieren Sie Julia und dann ihre Bibliotheken … Demnächst.

Die gute Nachricht ist, dass Sie den Aufwand für die Einrichtung der Workbench mit der Containerisierungsplattform Docker reduzieren können . Sie denken vielleicht, dass Docker nur für DevOps oder Hardcore-Entwickler gedacht ist, aber die Jupyter Docker Stacks vereinfachen das Erstellen einer gebrauchsfertigen Jupyter-Anwendung mit Data Science/Financial-Bibliotheken in wenigen Befehlen.

Dieser Artikel ist der erste Teil der Serie, der zeigt, wie Sie die Jupyter Notebook-Umgebung mit Docker einrichten, um Finanzdaten von Refinitiv Data Platform zu verwenden und anzuzeigen, ohne die oben genannten Schritte installieren zu müssen. Der Artikel behandelt Jupyter mit der Programmiersprache Python.

Einführung in Jupyter Docker Stacks

Die Jupyter Docker Stacks sind eine Reihe betriebsbereiter Docker-Images, die Jupyter-Anwendungen und interaktive Computertools mit vorinstallierten wissenschaftlichen, mathematischen und Datenanalysebibliotheken enthalten. Mit Jupyter Docker Stacks wird der Einrichtungsumgebungsteil auf nur die folgenden Schritte reduziert:

Installieren Sie Docker und melden Sie sich für die DockerHub- Website an (kostenlos). Führen Sie einen Befehl aus, um ein Image abzurufen, das Jupyter und vorinstallierte Pakete basierend auf dem Image-Typ enthält. Arbeiten Sie mit Ihrer Notebook-Datei Wenn Sie zusätzliche Bibliotheken benötigen, die nicht mit dem Image vorinstalliert sind, können Sie Ihr Image mit einer Dockerfile erstellen, um diese Bibliotheken zu installieren.

Jupyter Docker Stacks stellen Entwicklern je nach Anforderung verschiedene Images zur Verfügung, wie zum Beispiel:

jupyter/scipy-notebook : Jupyter Notebook/JupyterLab mit conda / mamba , ipywidgets und beliebten Paketen aus dem wissenschaftlichen Python-Ökosystem ( Pandas , Matplotlib , Seaborn , Requests , etc.) jupyter/r-notebook : Jupyter Notebook/JupyterLab mit R-Interpreter, IRKernel und Devtools . jupyter/datascience-notebook : Alles in jupyter/scipy-notebook- und jupyter/r-notebook- Bildern mit Julia-Unterstützung. jupyter/tensorflow-notebook : Alles im jupyter/scipy-notebook- Bild mit TensorFlow . Ausführen des Jupyter Docker Scipy-Notebook-Image

Sie können den folgenden Befehl ausführen, um ein Jupyter/Scipy-Notebook-Image (Tag 70178b8e48d7 ) abzurufen und einen Container zu starten, auf dem ein Jupyter Notebook-Server auf Ihrem Computer ausgeführt wird.

docker run -p 8888:8888 --name notebook -v :/home/jovyan/work -e JUPYTER_ENABLE_LAB=yes --env-file .env -it jupyter/scipy-notebook:70178b8e48d7

-p 8888:8888: Macht den Server auf Host-Port 8888 verfügbar -v :/home/jovyan/work: Mountet das Arbeitsverzeichnis auf dem Host als /home/jovyan/work-Ordner im Container, um die Dateien zwischen Ihrem Host-Rechner und einem Container zu speichern. -e JUPYTER_ENABLE_LAB=yes: Führen Sie JupyterLab anstelle des standardmäßigen klassischen Jupyter Notebook aus. --name notebook: Definiere einen Containernamen als Notebook -it: Aktivieren Sie den interaktiven Modus mit einem Pseudo-TTY, wenn Sie einen Container ausführen --env-file .env: Übergeben Sie eine .envDatei an einen Container. Docker zerstört den Container und seine Daten, wenn Sie den Container entfernen, sodass Sie die -vOption immer benötigen . Der Standard-Notebook-Benutzername eines Containers ist immer jovyan (Sie können ihn jedoch in etwas anderes ändern).

Sie können auf die JupyterLab-Anwendung zugreifen, indem Sie die Notebook-Server-URL in Ihrem Browser öffnen. Es beginnt mit dem Standort /home/jovyan/ . Bitte beachten Sie, dass nur die Notizbücher und Dateien im Arbeitsordner auf dem Hostcomputer gespeichert werden können ( Ordner).

Das Jupyter/scipy-notebook-Image verfügt über integrierte nützliche Python-Bibliotheken wie Requests , Matplotlib, Pandas, NumPy usw.

Die Dateien im Ordner sind in der JupyterLab-Anwendung verfügbar, wenn Sie das nächste Mal einen Container starten, sodass Sie mit Ihren Dateien wie in einer normalen JupyterLab/Anaconda-Umgebung arbeiten können.

Um den Container zu stoppen, drücken Sie einfach die Tasten Strg+c , um den Container zu verlassen.

Alternativ können Sie einfach ausführen docker stop , um den Container zu stoppen und den docker rm Befehl zum Entfernen des Containers ausführen .

docker stop notebook...docker rm notebook

Das Jupyter/Scipy-Notebook-Image eignet sich zum Erstellen eines Notebooks oder Dashboards mit den Inhalten der Refinitiv Data Platform APIs (RDP APIs). Sie können mit der HTTP-Bibliothek Daten von RDP-APIs anfordern, eine Datenanalyse durchführen und dann ein Diagramm mit integrierten Python-Bibliotheken zeichnen.

Was sind Refinitiv Data Platform (RDP)-APIs?

Die Refinitiv Data Platform (RDP)-APIs stellen Entwicklern verschiedene Refinitiv-Daten und -Inhalte über eine benutzerfreundliche webbasierte API bereit.

RDP-APIs bieten Entwicklern einen nahtlosen und ganzheitlichen Zugriff auf alle Refinitiv-Inhalte wie historische Preise, Umwelt, Soziales und Governance (ESG), Nachrichten, Forschung usw , geliefert, wo sie es brauchen. Die Bereitstellungsmechanismen für RDP-APIs sind die folgenden:

Anfrage — Antwort: RESTful-Webservice (HTTP GET, POST, PUT oder DELETE) Warnung: Zustellung ist ein Mechanismus zum Empfangen asynchroner Aktualisierungen (Warnungen) für ein Abonnement. Bulks: Liefern Sie erhebliche Nutzlasten, wie z. B. die End-of-Day-Preisdaten für den gesamten Veranstaltungsort. Streaming: Liefern Sie Nachrichten in Echtzeit.

Weitere Informationen zur Refinitiv Data Platform finden Sie in den folgenden APIs-Ressourcen:

Schnellstartseite . Seite mit Tutorials . RDP-APIs: Einführung in die Request-Response-API- Seite. RDP-APIs: Autorisierung – Seite "Alles über Token ".

docker run -p 8888:8888 --name notebook -v :/home/jovyan/work -e JUPYTER_ENABLE_LAB=yes --env-file .env -it jupyter/scipy-notebook:70178b8e48d7

Ausführliche Informationen zum Ausführen dieses Beispielnotizbuchs finden Sie im Abschnitt So führen Sie das Jupyter Docker Scipy-Notebook aus .

Der Notebook-Workflow rdp_apis_notebook.ipynb ist identisch mit dem Beispiel-Notebook in meinem Artikel So trennen Sie Ihre Anmeldeinformationen, Geheimnisse und Konfigurationen von Ihrem Quellcode mit Umgebungsvariablen . Es sendet die HTTP-Anforderungsnachricht an den RDP-APIs-Authentifizierungsdienst, um das RDP-APIs-Zugriffstoken abzurufen. Sobald es ein Zugriffstoken erhält, fordert es ESG-Daten (Environmental, Social, and Governance) vom ESG-Dienst der RDP-APIs an.

Das Notebook zeichnet das ESG- Datendiagramm mit der vorinstallierten matplotlib.pyplot- Bibliothek.

So ändern Sie den Containerbenutzer

Die Jupyter Docker Stacks-Images sind ein Linux-Container, der den Jupyter-Server für Sie ausführt. Der Standard-Notebook-Benutzer ( nb_user ) des Jupyter-Servers ist immer jovyan und das Home-Verzeichnis ist immer home/jovyan . Sie können jedoch einen Notebook-Benutzer nach Ihren Wünschen über die folgenden Containeroptionen in einen anderen ändern.

docker run -e CHOWN_HOME=yes --user root -e NB_USER= ://jovyan/work

docker run -p 8888:8888 --name notebook -e CHOWN_HOME=yes --user root -e NB_USER=wasinw -v C:drive_dProjectCode otebook_dockerpython otebook:/home/wasinw/work -e JUPYTER_ENABLE_LAB=yes --env-file .env -it jupyter/scipy-notebook:70178b8e48d7

Bitte beachten Sie, dass dieses Beispielprojekt jovyan als Standard-Notebook-Benutzer verwendet.

So verwenden Sie andere Python-Bibliotheken

Wenn Sie Bibliotheken verwenden, die nicht mit dem Docker-Image jupyter/scipy-notebook geliefert werden, wie die Plotly Python-Bibliothek , können Sie sie direkt über die Notebook-Shell mit den Tools pip und conda/mamba installieren.

Beispiel mit Pip:

import sys!$sys.executable -m pip install plotly

import sys!conda install --yes --prefix {sys.prefix} plotly

Mit den Jupyter Docker Stacks können Entwickler ihre Dockerfile mit einer Anweisung erstellen, die Python-Abhängigkeiten über Mamba-, Pip- und Conda-Paketverwaltungstools zu installieren. Weitere Informationen finden Sie auf der Seite Verwenden von mamba-Installation oder pip-Installation in einem untergeordneten Docker-Image .

Beispiel mit Refinitiv-Daten über die Refinitiv Data Platform Library und Plotly

Lassen Sie uns dies mit der Refinitiv Data Platform-Bibliothek für Python (RDP-Bibliothek für Python) und den Plotly-Bibliotheken demonstrieren.

Einführung in Refinitiv Data Platform (RDP)-Bibliotheken

Refinitiv bietet eine breite Palette von Inhalten und Daten, die mehrere Technologien, Bereitstellungsmechanismen, Datenformate und mehrere APIs erfordern, um auf jeden Inhalt zuzugreifen. Die RDP-Bibliotheken sind eine Suite benutzerfreundlicher Schnittstellen, die einen einheitlichen Zugriff auf Streaming- und Nicht-Streaming-Datendienste bieten, die innerhalb der Refinitiv Data Platform (RDP) angeboten werden . Die Bibliotheken vereinfachten den Zugriff auf Daten in verschiedenen Bereitstellungsmodi wie Request-Response, Streaming, Bulk File und Queues über eine einzige Bibliothek.

Ausführlichere Informationen zu den RDP-Bibliotheken finden Sie in den folgenden Artikeln und Tutorials:

Entwicklerartikel: Entdecken Sie unsere Refinitiv Data Platform Library Teil 1 . Entwicklerartikel: Entdecken Sie unsere Refinitiv Data Platform Library Teil 2 . Refinitiv Data Platform Libraries Document: Eine Einführungsseite .

Da dieses Beispielprojekt auf Alpha-Versionen 1.0.0.a10 der Python-Bibliothek getestet wurde , können sich die Methodensignaturen, Datenformate usw. ändern.

Erstellen Sie zunächst eine requirements.txtDatei in einem /python/ -Ordner mit folgendem Inhalt:

plotly==5.2.2refinitiv-dataplatform==1.0.0a10

# Start from a core stack versionFROM jupyter/scipy-notebook:70178b8e48d7LABEL maintainer="Your name and email address"# Install from requirements.txt fileCOPY --chown=${NB_UID}:${NB_GID} requirements.txt /tmp/RUN pip install --quiet --no-cache-dir --requirement /tmp/requirements.txt && fix-permissions "${CONDA_DIR}" && fix-permissions "/home/${NB_USER}"ENV JUPYTER_ENABLE_LAB=yes

Und dann erstellen Sie mit dem folgenden Befehl ein Docker-Image namens jupyter_rdp_plotly :

docker build . -t jupyter_rdp_plotly

docker run -p 8888:8888 --name notebook -v :/home/jovyan/work --env-file .env -it jupyter_rdp_plotly

Anschließend können Sie beginnen, Notebook-Anwendungen zu erstellen, die Inhalte von Refinitiv mit der RDP-Bibliotheks-API verwenden, und dann Daten mit der Plotly-Bibliothek darstellen. Weitere Informationen finden Sie in der Notebook- Beispieldatei rdp_library_plotly_notebook.ipynb im GitHub-Repository /python/notebook- Ordner. Ausführliche Informationen zum Ausführen dieses Beispiel-Notebooks finden Sie im Abschnitt So erstellen und ausführen des Jupyter Docker Scipy-Notebook-Image mit RDP-Bibliothek für Python und Plotly anpassen .

Der Workflow rdp_library_plotly_notebook.ipynb beginnt mit der Initialisierung der RDP-Sitzung.

Dann fordert das Notebook die historischen Daten von der RDP-Plattform unter Verwendung des RDP-Bibliotheken-Funktions-Layers an und zeichnet diese historischen Daten mit dem Plotly-Express- Objekt als mehrzeiliges Diagramm .

Achtung : Sie sollten hinzufügen .env (und .env.example), Jupyter Checkpoints, Cache, Konfiguration usw. Datei an die .dockerignoreDatei um sie zu einer öffentlichen Docker Hub - Repository zu vermeiden hinzufügen.

Was passiert, wenn ich die Eikon Data API verwende?

Wenn Sie die Eikon Data API (auch bekannt als DAPI) verwenden, sind die Jupyter Docker Stacks nichts für Sie. Die Refinitiv Workspace/Eikon-Anwendung integriert einen Data API-Proxy, der als Schnittstelle zwischen der Eikon Data API Python-Bibliothek und der Eikon Data Platform fungiert. Aus diesem Grund muss die Refinitiv Workspace/Eikon-Anwendung auf demselben Computer ausgeführt werden, auf dem die Eikon Data API ausgeführt wird, und die Refinitiv Workspace/Eikon-Anwendung unterstützt Docker nicht.

Sie können jedoch über die Anwendung auf CodeBook zugreifen , die in der Cloud gehostete Jupyter Notebook-Entwicklungsumgebung für Python- Skripterstellung . Das CodeBook ist nativ in Refinitiv Workspace und Eikon als App verfügbar ( keine Installation erforderlich!! ) und bietet Zugriff auf Refinitiv-APIs und andere beliebte Python-Bibliotheken, die bereits in der Cloud vorinstalliert sind. Die Liste der vorinstallierten Bibliotheken ist in der Datei Libraries& Extensions.md des Codebooks verfügbar .

Weitere Informationen zur CodeBook-App finden Sie in diesem Artikel Verwenden Sie die Eikon Data API oder die RDP-Bibliothek in Python in CodeBook im Webbrowser .

Demovoraussetzung

Dieses Beispiel erfordert die folgende Abhängigkeitssoftware und Bibliotheken.

Anmeldeinformationen für den RDP-Zugriff. Docker Desktop/Engine- Version 20.10.x DockerHub- Konto (kostenloses Abonnement). Internetverbindung. So führen Sie die Beispiele aus

Der erste Schritt besteht darin, den Beispielprojektordner in ein Verzeichnis Ihrer Wahl zu entpacken oder herunterzuladen und dann Python- oder R-Docker-Umgebungen nach Ihren Wünschen einzurichten.

Achtung : Sie sollten eine .envDatei nicht für Ihre Kollegen freigeben oder an die Versionskontrolle übergeben/übertragen. Sie sollten die Datei der .gitignoreDatei hinzufügen, um zu vermeiden, dass sie versehentlich der Versionskontrolle oder dem öffentlichen Repository hinzugefügt wird.

So führen Sie das Jupyter Docker Scipy-Notebook aus

Öffnen Sie zunächst den Projektordner in der Eingabeaufforderung und wechseln Sie in den Python- Unterordner. Erstellen Sie dann .envin diesem Ordner einen Dateinamen mit folgendem Inhalt:

# RDP Core CredentialsRDP_USER=RDP_PASSWORD=RDP_APP_KEY=# RDP Core EndpointsRDP_BASE_URL=http://api.refinitiv.comRDP_AUTH_URL=/auth/oauth2/v1/tokenRDP_ESG_URL=/data/environmental-social-governance/v2/views/scores-full

docker run -p 8888:8888 --name notebook -v :/home/jovyan/work -e JUPYTER_ENABLE_LAB=yes --env-file .env -it jupyter/scipy-notebook:70178b8e48d7

Öffnen Sie schließlich den Arbeitsordner und öffnen Sie die Notebook-Beispieldatei rdp_apis_notebook.ipynb , und durchlaufen Sie dann jede Notebook-Zelle.

So erstellen und ausführen Sie das benutzerdefinierte Jupyter Docker Scipy-Notebook-Image mit der RDP-Bibliothek für Python und Plotly

Öffnen Sie zunächst den Projektordner in der Eingabeaufforderung und wechseln Sie in den Python- Unterordner. Erstellen Sie dann .envin diesem Ordner einen Dateinamen mit folgendem Inhalt. Sie können diesen Schritt überspringen, wenn Sie ihn oben im Abschnitt Scipy-Notebook-Ausführung bereits ausgeführt haben.

# RDP Core CredentialsRDP_USER=RDP_PASSWORD=RDP_APP_KEY=

docker build . -t jupyter_rdp_plotly

docker run -p 8888:8888 --name notebook -v :/home/jovyan/work --env-file .env -it jupyter_rdp_plotly

Öffnen Sie den Arbeitsordner und öffnen Sie die Notebook-Beispieldatei rdp_library_plotly_notebook.ipynb , und führen Sie dann jede Notebookzelle durch.

Abschluss

Docker ist eine offene Containerisierungsplattform zum Entwickeln, Testen, Bereitstellen und Ausführen von Softwareanwendungen. Die Jupyter Docker Stacks bieten eine einsatzbereite und konsistente Entwicklungsumgebung für Data Scientists, Finanzcoder und ihre Teams. Entwickler müssen ihre Umgebung/Workbench (Anaconda, Virtual Environment, Jupyter-Installation usw.) nicht mehr manuell einrichten, was für sie die komplexeste Aufgabe ist. Entwickler können nur einen einzigen Befehl ausführen, um den Jupyter Notebook-Server von Jupyter Docker Stacks aus zu starten und ihre Arbeit fortzusetzen.

Die Jupyter Docker Stacks enthalten bereits eine Handvoll Bibliotheken für Data Science/Financial Development für verschiedene Anforderungen (Python, R, Machine Learning u.v.m.). Wenn Entwickler zusätzliche Bibliotheken benötigen, können Entwickler mit Jupyter Docker Stacks ihre Dockerfile mit einer Anweisung zum Installieren dieser Abhängigkeiten erstellen. Alle aus dem benutzerdefinierten Image generierten Container können die Bibliotheken ohne manuelle Installation verwenden.

Verweise

Weitere Details zu den Refinitiv Data Platform Libraries, Plotly, Jupyter Docker Stacks und verwandten Technologien für dieses Notebook finden Sie in den folgenden Ressourcen:

Refinitiv Data Platform (RDP) -Bibliotheken auf der Website der Refinitiv Developer Community . Seite mit der Schnellstartanleitung für RDP-Bibliotheken . RDP-Bibliotheken Tutorial-Seite . Entdecken Sie unsere Refinitiv Data Platform Library (Teil 1) . Entdecken Sie unsere Refinitiv Data Platform Library (Teil 2) . Plotly Offizielle Seite . Plotly Python-Seite . Plotly Express-Seite Seite Plotly Graph Objects Jupyter Docker Stacks Seite Jupyter Docker Stack auf der DockerHub- Website. RDP-APIs-Forum . Refinitiv Data Platform-Bibliotheken-Forum .

http://github.com/Refinitiv-API-Samples/Article.RDP.RDPLibrary.Python.R.JupyterDocker

网站地图