[Node-RED] Exécuter Python sur l'environnement virtuel Anaconda à partir de Node-RED [Anaconda] [Python]

Chose que tu veux faire

Fonctionnalité

-Utiliser Anaconda (pour faciliter l'environnement d'exécution Python)

Image de ce que vous voulez faire

イメージ.jpg 1. Connectez-vous à postgreSQL depuis Node-RED et créez un fichier csv 2. Exécutez le fichier bat à partir de Node-RED 3. Activez l'environnement conda dans le fichier bat et exécutez le programme Python 4. Spécifiez le fichier I / F pour le programme Python

Environnement d'exécution

objectif

完成イメージ.JPG

1. Connectez-vous à postgreSQL depuis Node-RED et créez un fichier csv

Cinq nœuds sont requis. Rejoignez les nœuds suivants dans l'ordre suivant.

  1. Nœud de fonction [Fonction]

Image de description du nœud de fonction


msg.select = "SELECT  val"
msg.from = "FROM public.sensordata "
msg.where = "where sensor ='Capteur d'humidité'"
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. Nœud postgres [Stockage]
  1. [Fonction] nœud de conversion json vers csv
  1. Nœud de fonction [Function]

Image de description du nœud de fonction


//Exemple) msg.rootpath = "C:\\temp\\conda"
//Exemple) msg.Obtenir l'horodatage du nœud d'injection
msg.filename = msg.rootpath + "\\indata\\" + msg.timestamp + ".csv";

return msg;
  1. Nœud de fichier [Stockage]

2. Exécutez le fichier bat à partir de Node-RED

Deux nœuds sont nécessaires. Rejoignez les nœuds suivants dans l'ordre suivant.

point

--Spécifiez une commande + un argument dans *** msg.payload afin que la commande d'exécution puisse être spécifiée arbitrairement *** (Normalement, la commande est directement spécifiée dans le nœud exec, mais dans ce cas, elle ne peut pas être modifiée)
* Il semble que la commande soit exécutée avec la valeur de réglage de la commande du noeud exec + vide + msg.payload

  1. Nœud de fonction [Fonction]

Image de description du nœud de fonction


//Chemin complet du fichier bat à exécuter Exemple)"C:\\temp\\conda\\ExecPython.bat"* Du fichier bat qui exécute le programme Python spécifié
msg.command = msg.execPythonCmd
//1er exemple d'argument)"test.py"* Nom de fichier du programme Python à exécuter
msg.arg_1 = msg.execPythonNm
//2ème argument Exemple) I au programme Python à exécuter/F (fichier d'entrée)
msg.arg_2 = "indata\\" + msg.timestamp + ".csv"
//3ème argument Exemple) I au programme Python à exécuter/F (fichier de sortie)
msg.arg_3 = "outdata\\" + msg.timestamp + ".csv"

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

return msg;
  1. noeud d'exécution [Function] --Objectif: exécuter la commande --Utilisation: indiquez un *** vide pour la commande ***. *** La case à cocher pour msg.payload est cochée ***. execノード.JPG

3. Activez l'environnement conda dans le fichier bat et exécutez le programme Python

ExecPython.bat


Déplacer vers le dossier d'exécution de rem
rem Exemple) C:\temp\Lorsque l'environnement d'exécution a été préparé sous conda
cd /d C:\temp\conda

Activer rem conda
call activateConda.bat

Exécutez rem Python
rem %1:Nom du fichier Python à exécuter
rem %1~7:Arguments à Python à exécuter
python %1 %2 %3 %4 %5 %6 %7

activateConda.bat


conda activate [Nom de l'environnement que vous souhaitez activer Exemple) base]

4. Spécifiez le fichier I / F pour le programme Python

test.py


import sys
#Obtenir des arguments
args = sys.argv

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

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

Courir

Préparation 1) Préparation du dossier d'exécution

Les fichiers décrits en 3 et 4 sont stockés comme suit. フォルダ構成.JPG

Préparation 2) Création de flux

Préparez le flux décrit en 1 et 2. Cela peut être plus facile à gérer si vous décrivez les informations requises pour l'exécution dans le nœud de fonction comme indiqué ci-dessous.

Paramétrage des conditions d'exécution


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

Résultat d'exécution

Lire le fichier csv stocké dans le dossier indata et générer des statistiques simples dans le dossier outdata 実行結果.JPG

en conclusion

«Node-RED» en tant que plateforme IoT, «Anaconda + Python + Jupyter Notebook» en tant que plateforme de science des données Je pense que cela peut être mentionné, mais je pense que DX progressera si ceux-ci sont connectés de manière transparente.

Recommended Posts

[Node-RED] Exécuter Python sur l'environnement virtuel Anaconda à partir de Node-RED [Anaconda] [Python]
De la construction d'environnement Python à la construction d'environnement virtuel avec anaconda
Construction de l'environnement Anaconda Python sous Windows 10
Environnement virtuel Python et packages sur Ubuntu
[Python] Créez un environnement virtuel avec Anaconda
Créer un environnement Python avec Anaconda sur Mac
Construire l'environnement Python3.5 + matplotlib sur Ubuntu 12 en utilisant Anaconda
Exécuter des commandes depuis Python
environnement virtuel python Pipenv
environnement virtuel en Python
[Venv] Créer un environnement virtuel python sur Ubuntu
Exécuter la commande depuis Python
Environnement virtuel avec Python 3.6
Créez un environnement de développement Python 3 (Anaconda) confortable avec Windows
Remarques sur la création d'un environnement virtuel avec Anaconda Navigator
Rendre l'environnement anaconda disponible dans Windows à partir de l'invite de commande
Construction de l'environnement Python + Anaconda + Pycharm
Installer l'environnement Python avec Anaconda
Construction de l'environnement Anaconda sur CentOS7
Créer un environnement virtuel Anaconda
Utiliser MySQL depuis Anaconda (python)
Anaconda mis à jour de 4.2.0 à 4.3.0 (python3.5 mis à jour vers python3.6)
Procédure de construction de l'environnement python Anaconda3
Créer un environnement Python sur Windows
Construire un environnement virtuel Python
Construire un environnement Python avec Windows
[Anaconda] Activez l'environnement virtuel
venv: gestion de l'environnement virtuel Python
environnement virtuel standard python venv
Construire un environnement virtuel Python
Construction de l'environnement Python sur Mac (pyenv, virtualenv, anaconda, notebook ipython)
OpenJTalk sur Windows10 (parler japonais avec Python depuis la construction de l'environnement)
Comment créer un nouvel environnement virtuel Python sur Ubuntu
Création d'un environnement pour exécuter des programmes Python sur AWS EC2
Créer un environnement virtuel pour python sur mac [Très facile]
Construire un environnement Python sur Mac
Exécuter le script Python à partir du fichier de commandes
Résumé de la gestion des versions de l'environnement virtuel Python
Mémo de construction de l'environnement Python sur Windows 10
Configurer un environnement de développement Python sur Ubuntu
Construire un environnement Python sur Ubuntu
installation de python2.7 dans un environnement Windows 32 bits
Construction de l'environnement Anaconda sur Mac (version 2018)
Kivy + Python3 sur la maintenance de l'environnement OSX
Créer un environnement Python sur Mac (2017/4)
Créer un environnement virtuel avec Python 3
installer tensorflow dans un environnement anaconda + python3.5
Construction de l'environnement de développement Python sur macOS
Configurer l'environnement Python sur CentOS
Créer un environnement python dans centos
Exécuter du code Python à partir de l'interface graphique C #
Construire un environnement pour python3.8 sur Mac
Remarques sur l'accès à dashDB à partir de python
Installer l'environnement de développement Python sur Windows 10
Ordre des répertoires d'importation Python (sur anaconda)
Créer un environnement Python 3.8 + Pipenv sur Ubuntu 18.04