[Node-RED] Führen Sie Python in einer virtuellen Anaconda-Umgebung von Node-RED aus [Anaconda] [Python]

Was du machen willst

Charakteristisch

-Verwenden Sie Anaconda (um die Python-Ausführungsumgebung zu vereinfachen)

Bild von dem, was Sie tun möchten

イメージ.jpg 1. Stellen Sie von Node-RED aus eine Verbindung zu postgreSQL her und erstellen Sie eine CSV-Datei 2. Führen Sie die bat-Datei von Node-RED aus 3. Aktivieren Sie die Conda-Umgebung in der Bat-Datei und führen Sie das Python-Programm aus 4. Geben Sie die I / F-Datei für das Python-Programm an

Ausführungsumgebung

Tor

完成イメージ.JPG

1. Stellen Sie von Node-RED aus eine Verbindung zu postgreSQL her und erstellen Sie eine CSV-Datei

Es sind fünf Knoten erforderlich. Verbinden Sie die folgenden Knoten in der folgenden Reihenfolge.

  1. Funktionsknoten [Funktion] --Zweck: SQL-Anweisungen zusammenstellen --Usage: Schreiben Sie die SQL-Anweisung direkt in msg.payload

Beschreibungsbild zum Funktionsknoten


msg.select = "SELECT  val"
msg.from = "FROM public.sensordata "
msg.where = "where sensor ='Feuchtigkeitssensor'"
msg.orderBy = "order by datetime desc"
msg.limit = "limit 1000"

msg.payload = msg.select
msg.payload += " " + msg.from
msg.payload += " " + msg.where
msg.payload += " " + msg.orderBy
msg.payload += " " + msg.limit

return msg;
  1. Postgres-Knoten [Speicher] --Zweck: Stellen Sie eine Verbindung zu postgreSQL her und führen Sie SQL aus --Verwendung: Standardverwendung
  2. [Funktion] json zu csv Konverterknoten --Zweck: Der Postgre-Knoten wird im JSON-Format zurückgegeben. Konvertieren Sie ihn daher in das CSV-Format. --Verwendung: Standardverwendung
  3. Funktionsknoten [Funktion]

Beschreibungsbild zum Funktionsknoten


//Beispiel) msg.rootpath = "C:\\temp\\conda"
//Beispiel) msg.Zeitstempel vom Injektionsknoten abrufen
msg.filename = msg.rootpath + "\\indata\\" + msg.timestamp + ".csv";

return msg;
  1. Dateiknoten [Speicher]

2. Führen Sie die bat-Datei von Node-RED aus

Es werden zwei Knoten benötigt. Verbinden Sie die folgenden Knoten in der folgenden Reihenfolge.

Punkt

  1. Funktionsknoten [Funktion] --Zweck: Bauen Sie den Ausführungsbefehl zusammen --Usage: Legen Sie den Befehl fest, der in msg.payload ausgeführt werden soll

Beschreibungsbild zum Funktionsknoten


//Vollständiger Pfad der auszuführenden Bat-Datei Beispiel)"C:\\temp\\conda\\ExecPython.bat"* Von der bat-Datei, die das angegebene Python-Programm ausführt
msg.command = msg.execPythonCmd
//1. Argument Beispiel)"test.py"* Dateiname des auszuführenden Python-Programms
msg.arg_1 = msg.execPythonNm
//2. Argument Beispiel) I zum auszuführenden Python-Programm/F (Eingabedatei)
msg.arg_2 = "indata\\" + msg.timestamp + ".csv"
//3. Argument Beispiel) I zum auszuführenden Python-Programm/F (Ausgabedatei)
msg.arg_3 = "outdata\\" + msg.timestamp + ".csv"

msg.payload = msg.command + " " + msg.arg_1 + " " + msg.arg_2 + " " + msg.arg_3

return msg;
  1. [Funktion] Exec-Knoten

3. Aktivieren Sie die Conda-Umgebung in der Bat-Datei und führen Sie das Python-Programm aus

ExecPython.bat


In den Rem-Ausführungsordner verschieben
rem Beispiel) C.:\temp\Wenn die Ausführungsumgebung unter Bedingungen vorbereitet wurde
cd /d C:\temp\conda

Aktivieren Sie rem conda
call activateConda.bat

Führen Sie rem Python aus
rem %1:Auszuführender Python-Dateiname
rem %1~7:Argumente, die Python ausführen soll
python %1 %2 %3 %4 %5 %6 %7

activateConda.bat


conda activate [Umgebungsname, den Sie aktivieren möchten Beispiel) Basis]

4. Geben Sie die I / F-Datei für das Python-Programm an

test.py


import sys
#Argumente abrufen
args = sys.argv

import pandas as pd
sensordata = pd.read_csv(args[1])

print(sensordata.describe())
sensordata.describe().to_csv(args[2], index=True)

Lauf

Vorbereitung 1) Vorbereitung der Ausführungsdatei

Die in 3 und 4 beschriebenen Dateien werden wie folgt gespeichert. フォルダ構成.JPG

Vorbereitung 2) Flow-Erstellung

Bereiten Sie den in 1 und 2 beschriebenen Ablauf vor. Die Verwaltung ist möglicherweise einfacher, wenn Sie die für die Ausführung im Funktionsknoten erforderlichen Informationen wie unten gezeigt beschreiben.

Einstellung der Ausführungsbedingungen


msg.timestamp = msg.payload
msg.rootpath = "C:\\temp\\conda"
msg.execPythonCmd = "C:\\temp\\conda\\ExecPython.bat"
msg.execPythonNm = "test.py"
return msg;

Ausführungsergebnis

Lesen Sie die im Indata-Ordner gespeicherte CSV-Datei und geben Sie einfache Statistiken in den Outdata-Ordner aus 実行結果.JPG

abschließend

"Node-RED" als IoT-Plattform, "Anaconda + Python + Jupyter Notebook" als Data Science-Plattform Ich denke, das kann erwähnt werden, aber ich gehe davon aus, dass DX voranschreiten wird, wenn diese nahtlos miteinander verbunden sind.

Recommended Posts

[Node-RED] Führen Sie Python in einer virtuellen Anaconda-Umgebung von Node-RED aus [Anaconda] [Python]
Von der Python-Umgebungskonstruktion zur virtuellen Umgebungskonstruktion mit Anaconda
Aufbau einer Anaconda-Python-Umgebung unter Windows 10
Virtuelle Python-Umgebung und Pakete unter Ubuntu
[Python] Erstellen Sie mit Anaconda eine virtuelle Umgebung
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
Erstellen Sie die Python3.5 + matplotlib-Umgebung unter Ubuntu 12 mit Anaconda
Führen Sie Befehle aus Python aus
Python Virtual Environment Pipenv
virtuelle Umgebung in Python
[Venv] Erstellen Sie eine virtuelle Python-Umgebung unter Ubuntu
Führen Sie den Befehl von Python aus
Virtuelle Umgebung mit Python 3.6
Erstellen Sie eine komfortable Python 3 (Anaconda) -Entwicklungsumgebung mit Windows
Hinweise zum Erstellen einer virtuellen Umgebung mit Anaconda Navigator
Stellen Sie die Anaconda-Umgebung in Windows über die Eingabeaufforderung zur Verfügung
Python + Anaconda + Pycharm-Umgebungskonstruktion
Installieren Sie die Python-Umgebung mit Anaconda
Anaconda-Umgebungskonstruktion auf CentOS7
Erstellen Sie eine virtuelle Anaconda-Umgebung
Verwenden Sie MySQL von Anaconda (Python)
Anaconda aktualisiert von 4.2.0 auf 4.3.0 (python3.5 aktualisiert auf python3.6)
Konstruktionsverfahren für die Anaconda3-Python-Umgebung
Erstellen Sie eine Python-Umgebung unter Windows
Erstellen einer virtuellen Python-Umgebung
Erstellen Sie eine Python-Umgebung mit Windows
[Anaconda] Aktivieren Sie die virtuelle Umgebung
venv: Verwaltung der virtuellen Python-Umgebung
Python Standard virtuelle Umgebung venv
Erstellen einer virtuellen Python-Umgebung
Aufbau einer Python-Umgebung auf einem Mac (pyenv, virtualenv, anaconda, ipython notebook)
OpenJTalk unter Windows 10 (Sprechen Sie Japanisch mit Python aus der Umgebungskonstruktion)
So erstellen Sie eine neue virtuelle Python-Umgebung unter Ubuntu
Erstellen einer Umgebung zum Ausführen von Python-Programmen unter AWS EC2
Erstellen einer virtuellen Umgebung für Python auf dem Mac [Sehr einfach]
Erstellen einer Python-Umgebung auf einem Mac
Führen Sie das Python-Skript aus der Batchdatei aus
Zusammenfassung der Versionsverwaltung der virtuellen Umgebung Python
Python-Umgebungskonstruktionsnotiz unter Windows 10
Richten Sie eine Python-Entwicklungsumgebung unter Ubuntu ein
Erstellen einer Python-Umgebung unter Ubuntu
Python2.7-Installation in einer Windows 32-Bit-Umgebung
Aufbau einer Anaconda-Umgebung auf einem Mac (Version 2018)
Kivy + Python3 zur Wartung der OSX-Umgebung
Erstellen Sie eine Python-Umgebung auf dem Mac (2017/4)
Erstellen einer virtuellen Umgebung mit Python 3
Installieren Sie Tensorflow in einer anaconda + python3.5-Umgebung
Aufbau einer Python-Entwicklungsumgebung unter macOS
Richten Sie die Python-Umgebung unter CentOS ein
Erstellen Sie eine Python-Umgebung in Centos
Führen Sie Python-Code über die C # -GUI aus
Erstellen einer Umgebung für Python3.8 auf einem Mac
Hinweise zum Zugriff auf dashDB über Python
Installieren Sie die Python-Entwicklungsumgebung unter Windows 10
Reihenfolge des Python-Importverzeichnisses (auf Anaconda)
Erstellen Sie die Python 3.8 + Pipenv-Umgebung unter Ubuntu 18.04