Wie benutzt man Python-Shell

1. Zweck

Rufen Sie Python-Code aus Javascrip-Code auf, der auf Node.js ausgeführt wird. Ich möchte auch, dass Javascript-Code die Ausgabe von Python-Code empfängt und die empfangenen Daten in Javascript verarbeitet.

1.JPG

2. Mittel

Verwenden Sie die Python-Shell. Klicken Sie hier für die Python-Shell-Quelle

3. Einstellungen und Installation

Erläutert die Vorbereitungs- und Installationsmethode für die Verwendung der Python-Shell. Es wird davon ausgegangen, dass node.js und python bereits installiert sind.

Umgebung ・ Ubuntu 18.04 auf Raspberry pi4 (Docker) · Weil. js v12.14.0 ・ Npm 6.13.4

3-1 So installieren Sie

Installieren Sie die Python-Shell mit npm.

python


root@24f85fb6fd69:/home# npm install python-shell
npm WARN [email protected] No description
npm WARN [email protected] No repository field.

+ [email protected]
updated 1 package and audited 103 packages in 2.37s
found 0 vulnerabilities

3-2 Anwendungsbeispiel

Erstellen Sie ein Verzeichnis TEST und platzieren Sie test.js und sample.py mit dem folgenden Code.

2.JPG

/home/pi/test/test.js


var {PythonShell} = require('python-shell');

//Erstellen Sie eine Instanz-Pyshell von PythonShell. Der Python-Dateiname, der von js aufgerufen werden soll, lautet'sample.py'
var pyshell = new PythonShell('sample.py');  

//Von js zu Python-Code'5'Wird als Eingabedaten bereitgestellt
pyshell.send(5); 
 
//Die Daten werden nach Ausführung des Python-Codes von Python an js übergeben.
//Die an Python übergebenen Daten werden in "Daten" gespeichert.
pyshell.on('message', function (data) {
  console.log(data);
});

/home/pi/test/sample.py


import sys
data = sys.stdin.readline()  #Daten von der Standardeingabe abrufen
num=int(data)

def sum(a):
    return a+3

print(sum(num)) #print()Der Inhalt von wird an js übergeben.

3-3 Ausführung

/home/pi/test/


root@24f85fb6fd69:/home/test# node test.js  //test.Führen Sie js aus
8    //Das von Python verarbeitete Ergebnis wird an Javascript übergeben und ausgeführt.

3.JPG

4 Javascript → Beim Senden von JSON-Daten an Python

Ich habe es gemäß Python-Shell-Quelle versucht, aber der JSON-Formatfehler "Unerwartetes Token T in json an Position 1" wird überall ausgegeben. Es funktioniert nicht und verfolgt, aber es scheint wenig Informationen über Python-Shell zu geben. Also habe ich versucht, JSON-Daten von Javascript über eine separat erstellte JSON-Datei an Python zu senden, und es hat funktioniert.

Der Code ist unten angegeben.

15.JPG

/home/pi/test/test.js


  const PYPATH="sample.py"

  var {PythonShell} = require('python-shell');
  var pyshell = new PythonShell(PYPATH, { mode: 'text'}); //Modus ist "JSON]Es ist besser, stattdessen "Text" anzugeben.

 //(1-1)Speichern Sie die zu registrierenden Markendaten in einem Array vom Typ Wörterbuch.
  var obj={
    stock_num: 2145,
    c_name:"ABC_COMPANY",
    eps:100
  }

  //(1-2)Konvertieren eines Wörterbuchtyp-Arrays in das JSON-Format.
  var jsondat = JSON.stringify( obj );

  //(1-3)Wenn die Datei zum Schreiben des obigen jsondat bereits vorhanden ist, löschen Sie die Datei einmal.
  if (fs.existsSync(JSONFILEPATH)) fs.unlinkSync(JSONFILEPATH)  
  //(1-4)Wenn die Datei zum Schreiben des obigen jsondat bereits vorhanden ist, löschen Sie die Datei einmal.
  fs.writeFileSync(JSONFILEPATH,jsondat) 


  //(2)Senden Sie leere Daten von js an Python-Code. Python-Code starten
  pyshell.send(""); 

  //(4)Erhalten Sie Python-Ausführungsergebnisse
  pyshell.on('message',  function (data) {
          console.log(data)
          res.send({
          message: "success"   //Das Ergebnis der von Python durchgeführten Berechnung wird an das Frontend zurückgegeben.
        })
      })

/home/pi/test/sample.py


import sys
import json

#(3-1)JSON-Dateitest.Öffnen Sie json
f = open('test.json', 'r')
#(3-2)test.Lesen Sie die JSON-Daten
json_dict = json.load(f)
#(3-3)JSON-Daten json_Diktatschlüssel:'stoch_num'Zugreifen.
dat1=json_dict['stock_num']
print(dat1) #Python den Inhalt des Drucks-Kehre zur Shell zurück

/home/pi/test/test.json


{"stock_num":"2145","c_name":"ABC company","eps":"100"}

Recommended Posts

Wie benutzt man Python-Shell
Verwendung von xml.etree.ElementTree
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von Virtualenv
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
Verwendung von Qt Designer
Verwendung der Suche sortiert
[gensim] Verwendung von Doc2Vec
python3: Verwendung der Flasche (2)
Verstehen Sie, wie man Django-Filter verwendet
Verwendung des Generators
[Python] Verwendung von Liste 1
Verwendung von FastAPI ③ OpenAPI
Wie benutzt man Python Argparse?
Verwendung von IPython Notebook
Wie man Pandas Rolling benutzt
[Hinweis] Verwendung von virtualenv
Verwendung von Redispy-Wörterbüchern
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
[Go] Verwendung von "... (3 Perioden)"
So bedienen Sie GeoIp2 von Django
[Python] Verwendung von input ()
Wie benutzt man den Dekorateur?
[Einführung] Verwendung von open3d
Wie benutzt man Python Lambda?
So verwenden Sie Jupyter Notebook
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
So verwenden Sie Google Colaboratory
Verwendung von Python-Bytes