Heim >Backend-Entwicklung >PHP-Tutorial >Eine kurze Diskussion darüber, wie man Python-Skripte in PHP ausführt
In diesem Artikel erfahren Sie, wie Sie Python-Skripte in PHP ausführen. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird für alle hilfreich sein.
Hinweis: In der Umgebung, in der dieses Problem auftrat, wird empfohlen, IIS + PHP zum Aufrufen von Python-Skripten zu verwenden, vorausgesetzt, die Windows-Umgebung schlägt fehl. Wenn Ihre Umgebung nicht mit der Umgebung dieser Frage übereinstimmt. Bitte automatisch vermeiden.
Wenn die Produktnachfrageanalyse ein bestimmtes Stadium erreicht, ist eine gewisse Koordination zwischen verschiedenen Abteilungen erforderlich. Wenn wir dann eine Full-Stack-Entwicklung durchführen, müssen wir all dies auf allgemeine Weise koordinieren. Außerdem besteht die Notwendigkeit, verschiedene Module und verschiedene Entwicklungssprachen gleichzeitig im Hintergrund zu aktivieren.
Zuallererst nutzt der Hintergrund eine IIS+PHP-Umgebung und läuft unter Windows. Rufen Sie Python-Programme über PHP auf.
Lassen Sie uns zunächst über das Problem sprechen: Unter der Voraussetzung, dass sowohl Python als auch PHP zu den Umgebungsvariablen des Systems hinzugefügt werden (und im cmd-Modus normal ausgeführt werden können), führen Sie a.php aus, um den 1.py
PHPCode aufzurufen (a .php)
$result = exec("py 1.py"); var_dump($result);
Python-Code (1.py)
print("123"); fl=open('test3.txt', 'w') fl.write("5,5,5,1,2,3") fl.close()
Die beiden Verzeichnisdateien befinden sich im selben Verzeichnis. Und IIS verfügt über ausreichende ausführbare Berechtigungen (um das Problem zu reproduzieren, habe ich den einfachsten Code geschrieben) und dann ist ein Lauffehler aufgetreten.
Dann habe ich den PHP-Code verbessert und den Fehlerstatuscode der Exec-Funktionsausführung überprüft
$result = exec("py 1.py", $array, $ret); var_dump($result); var_dump($array); var_dump($ret);
Ich habe festgestellt, dass der Fehlercode 103 (Ausführungsfehler) war
[Lernempfehlung: „PHP-Video-Tutorial“]
Dieses Mal werde ich die Bash in der Exec-Funktion auf Standardausgabe ändern (um die spezifische Fehlermeldung zu ermitteln)
PS: In der Bash repräsentieren die drei Zahlen 0, 1 und 2 STDIN_FILENO, STDOUT_FILENO und STDERR_FILENO, die sind Standardeingabe (normalerweise die Tastatur), Standardausgabe (normalerweise der Bildschirm, genauer gesagt die Benutzerterminalkonsole), Standardfehler (Ausgabe von Fehlerinformationen).
$result = exec("py 1.py 2>error.txt", $array, $ret); var_dump($result); var_dump($array); var_dump($ret);
Nachdem ich es dieses Mal ausgeführt habe, erschien beim Öffnen von error.txt ein Fehler wie: Es wurde kein Standard-Python gefunden (vorausgesetzt, ich habe Python zur Umgebungsvariablen hinzugefügt und konnte die Py-Datei direkt im cmd-Status ausführen). Es fühlte sich an, als wäre ein unaussprechlicher Fehler aufgetreten. Nach vollständiger Prüfung auf Fehler wie Umgebungsvariablen und ausführbare Berechtigungen. Ich habe die Ausführungsanweisung in exec unbewusst in
"python 1.py 2>error.txt"
geändert. Diesmal war der Fehler, den ich erhielt, tatsächlich ['python' ist kein interner oder externer Befehl, noch ist es ein lauffähiges Programm oder eine Batchdatei. 】Ich vermutete sogar, dass dieser Computer eine eigene Idee hatte. Kurz nachdem ich alle Informationen durchgegangen bin. Plötzlich kam mir der Gedanke, dass es möglicherweise daran lag, dass PHP auf dem IIS-Server ausgeführt wurde, IIS jedoch nicht über alle Benutzerberechtigungen verfügt (dies ist sowohl der Vor- als auch der Nachteil der IIS-Berechtigungssteuerung für das Erstellen von Website-Verzeichnissen). Kombiniert mit den in der vorherigen Datei „error.txt“ gemeldeten Fehlern. Ich werde einige Änderungen am Code vornehmen.
$res = exec("你python的安装绝对路径/python.exe 1.py 2>error.txt", $array, $ret); var_dump($result); var_dump($array); var_dump($ret);
Dann fügen Sie dem Benutzerbesitzer aller Dateien unter der Python-Datei eine ausführbare Berechtigung für die IIS-Benutzersteuerung hinzu.
Dieses Mal konnte PHP die ausführbare Exe-Datei von Python finden und unseren Code erfolgreich ausführen.
PS: IIS+Windows ist wirklich ein schwarzes Loch.
Weitere Kenntnisse zum Thema Programmierung finden Sie unter: Programmiervideos! !
Das obige ist der detaillierte Inhalt vonEine kurze Diskussion darüber, wie man Python-Skripte in PHP ausführt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!