Seite 1 von 1

Variablen von php zu python

Verfasst: Dienstag 20. Februar 2018, 11:53
von Justuv
Hallo, man verzeihe die möglicherweise primitive Frage, aber ich begreife es einfach nicht (bin ganz frisch zu python gekommen)
Folgendes existiert:
#!/usr/bin/env python
#coding: utf8
import sys

print("Content-Type: text/plain\n\n")

port = (sys.argv[1])
value = (sys.argv[2])

print port
print value

und funktioniert tadellos von der Konsole mit z.B: "sudo python aktion.py 11 22".
Liefert mir korrekt diese 2 Parameter bei print.

Nicht funktioniert der Aufruf per php-script:

<?php
echo shell_exec("sudo python /usr/local/bin/scripte/aktion.py XXXX");
?>

Dabei habe ich schon unzählige Varianten für "XXXX" probiert - keine Erfolge. Es sollen aber hier konkret 2 Werte übergeben werden wobei ob int oder str eigentlich egal ist. Werden dann im python script per if/elif weiterverarbeitet.
Das Script "aktion.py" wird aufgerufen, aber keine Parameter übernommen. Wer hat dazu einen einfachen, kurzen Tip für mich? Irgendwie stehe ich hier auf dem Schlauch. . .
Danke für jede Hilfe
Justuv

Re: Variablen von php zu python

Verfasst: Dienstag 20. Februar 2018, 15:35
von Sirius3
@Justuv: was passiert denn? Gibt es Fehlermeldungen? Wird das Skript gefunden und gestartet?

Re: Variablen von php zu python

Verfasst: Dienstag 20. Februar 2018, 17:04
von Justuv
Sirius3 hat geschrieben:@Justuv: was passiert denn? Gibt es Fehlermeldungen? Wird das Skript gefunden und gestartet?
Ich habe da leider keine Fehlermeldungen. Meine aktion.py hat da noch einen Befehl zum setzen eines GPIO's. Damit prüfe ich ob dieses Script überhaupt gestartet wird. Funktioniert auch top auf der Konsole. aber nicht per php. Jeder Versuch Parameter zu übergeben scheitert. Dann wird das Script entweder gar nicht ausgeführt oder stoppt. Ich sehe aber nur das GPIO 12 dann nicht schaltet.
Script:
#!/usr/bin/env python
#coding: utf8

import RPi.GPIO as GPIO
import sys
import time

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(12, GPIO.OUT)

port = int(sys.argv[1])
value = int(sys.argv[2])

GPIO.output(port, GPIO.HIGH)
time.sleep(.5)
GPIO.output(port, GPIO.LOW)

#nachfolgendes als Kontrolle ob aktion.py aufgerufen wird

GPIO.output(12, GPIO.HIGH)
time.sleep(.5)
GPIO.output(12, GPIO.LOW)

Wichtig! der prinzipielle Aufruf des scripts per php funktioniert. Wenn der hervorgehobene Teil auskommentiert ist. Mit dann :
<?php
echo shell_exec("sudo python /usr/local/bin/scripte/aktion.py");
?>

Re: Variablen von php zu python

Verfasst: Dienstag 20. Februar 2018, 19:44
von noisefloor
Hallo,

noch jemand mit Hosenträger-Gürtel Mentalität... Exakt den gleichen Thread gibt's auch im Raspi-Forum: https://forum-raspberrypi.de/forum/thre ... ch-python/

@Justuv: oder möchtest du einfach nur möglichst viele Leute mit deinem Porblem beschäftigen?

Nimm' einfach auch Python für den Server, weil das a) eh' besser ist und b) hast du dann auch keine Übergabeprobleme.

Gruß, noisefloor