Heim > Fragen und Antworten > Hauptteil
Ich habe eine Python-Datei, die eine API aufruft und einige Informationen abruft, die ich dann in einer PHP-Datei verwenden muss. Beim Ausführen von PHP erhalte ich jedoch die Fehlermeldung „‚1‘ wird nicht als interner oder externer Befehl, ausführbares Programm oder Batchdatei erkannt.“ Hängt das mit meiner Verwendung von sys.argv in der Python-Datei zusammen? Konkret:
id_num = sys.argv[1]
Der PHP-Code, den ich teste, ist wie folgt:
<?php function getData($var_one) { $cd_command = 'cd Location'; $command = 'python getData.py ' . $var_one; print($command); $output = shell_exec($cd_command && $command); return $output; } $test_string = getData("CRT67547"); print($test_string); ?>
Drucken Sie es aus, um sicherzustellen, dass mit dem Befehl kein Problem vorliegt und der Ausdruck gut aussieht.
Der Ausdruck sieht wie folgt aus: python getData.py CRT67547
P粉9905682832023-09-18 00:50:04
编辑:重新阅读问题,为了清晰起见进行了修改
您可能需要修改您的PHP中的shell_exec
参数。在PHP中,&&
是一个AND
逻辑运算符,但我假设您希望它与您的两个命令一起在shell中执行,如下所示:
$output = shell_exec($cd_command . '&&' . $command);
或者,为了使您的整体代码更简洁:
function getData($var_one) { $command = 'cd Location && python getData.py ' . $var_one; $output = shell_exec($command); return $output; }
然后您的shell应该运行cd Location && python getData.py CRT67547
。
根据您设置的位置,您甚至可以这样做:
function getData($var_one) { $command = 'python Location/getData.py ' . $var_one; $output = shell_exec($command); return $output; }
您可以将其简化为:
function getData($var_one) { return shell_exec('python Location/getData.py ' . $var_one); }