Python Script ausführen innerhalb PHP

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
yuzay
User
Beiträge: 2
Registriert: Mittwoch 27. März 2024, 14:11

Servus,

Wie der Titel bereits schon sagt, versuche ich seit mehreren Tagen mein Python File in PHP zu interregieren, jedoch schlug dies vermehrt fehl.
Bereits habe ich mir mehrere Beiträge durchgelesen im Forum, jegliches ausgetestet.
Folgende Informationen habe ich für euch, falls ihr einen Weg wisst;

- Jegliche Dateien sei es PHP oder Python sind auf einem Raspberry Pi gespeichert.
- Der User hat bereits volle Berechtigungen.
- Man kann die Datei aufrufen wenn man in die URL die IP wie auch den Dateinamen anfügt. Jedoch nur als Textform.

Bei weiteren Fragen wäre ich selbstverständlich zur Verfügung

Ich bedanke mich bereits jetzt!
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ohne Code und Fehlermeldung kann man dazu nichts sagen. Ausser der allgemeinen Anmerkung: das ist ueblicherweise Roedelei, die man nicht will. Python selbst ist ganz wunderbar dazu in der Lage , Webseiten auszuliefern. Man baut seine Anwendung also gleich auf Python (und zB Flask) auf, statt so einer Chimaere.
Benutzeravatar
grubenfox
User
Beiträge: 432
Registriert: Freitag 2. Dezember 2022, 15:49

Also bei völliger Ahnungslosigkeit was PHP betrifft, in der Doku zu php habe ich exec gefunden
Also vielleicht so?

Code: Alles auswählen

<?php
exec('python mein-pythonprogramm.py');
?>
Aber wie __deets__ schon geschrieben hat: besser gleich alles in Python machen...
yuzay
User
Beiträge: 2
Registriert: Mittwoch 27. März 2024, 14:11

Servus, ich bedanke mich für die schnellen Antworten,
Folgende Codes hätte ich hier die ich bereits genutzt habe

<?php
exec('python tp_BE.py');
?>

<?php
$method = 'trainingMode'; // or 'timeMode' or 'oneVOneMode'
$output = shell_exec('python tp.py '.$method)
echo $output;
?>

Ich habe bereits, den letztlichen Tagen, vermehrt verschiedenstes ausprobiert, jedoch kam ich immer wieder zurück auf diese Befehle oben.

Ebenso bekomme ich nur einen Errorlog der wäre:

Traceback (most recent call last):
File "/var/www/html/tp.py", line 1, in <module>
import mariadb
ModuleNotFoundError: No module named 'mariadb'

Ich sehe meinen Fehler ein, dass ich nicht alles direkt mit Python geschrieben hätte.
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Naja der Fehler ist doch recht eindeutig. Das Modul mariadb ist nicht gefunden worden. Das wirst du wahrscheinlich nicht fuer alle User, sondern nur fuer deinen Hauptbenutzer installiert haben. PHP laeuft aber unter www-data. Darum muss das global installiert werden, bevorzugt aus den offiziellen Paketquellen des Betriebssystems.
Benutzeravatar
__blackjack__
User
Beiträge: 13116
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Oder `python` ist nicht `python3` sondern noch `python2`.

Und wichtige Warnung: Es wird hoffentlich nicht Benutzerinput der über die URL/Parameter rein kommt direkt in die Zeichenkette eingebaut die da per `shell_exec()` ausgeführt wird. Das wäre eine Sicherheitslücke.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten