从 PHP 启动脚本运行 Python 脚本,但不结束它

Posted

技术标签:

【中文标题】从 PHP 启动脚本运行 Python 脚本,但不结束它【英文标题】:Running Python script from PHP starting script, but not ending it 【发布时间】:2018-08-01 15:22:59 【问题描述】:

我正在尝试从 php 运行 Python 脚本。我已经尝试过使用:system()、exec() 和 shell_exec() 函数。现在我的 PHP 看起来像:

<?php
system('./main.py');
echo 'succes';
?>

我在 Python 脚本中创建了一些 print() 函数,发现它停在这一行:

QueryImgBGR = cv2.imread(image_path)

PHP echo() 正在工作,尽管 system() 函数没有结束。从控制台运行 Python 脚本正在运行。

我正在使用 Python 3.5.3(使用 numpy、cv2 和 os 库)和 PHP 7.2.4(system()、shell_exec()、exec() 函数解锁)开发 Debian 4.9.30。

编辑: Python 中的 print() 函数在新行上打印,但 system() 函数通过空格将它们全部打印在一行上。

【问题讨论】:

【参考方案1】:

system() 调用只给你命令输出的最后一行,它是调用的返回值。所以你想捕捉它。

$response = system('./main.py');
echo 'success - response = ' . $response;

【讨论】:

感谢您指出这一点,我编辑了问题。不幸的是,这对我没有帮助。

以上是关于从 PHP 启动脚本运行 Python 脚本,但不结束它的主要内容,如果未能解决你的问题,请参考以下文章

从 PHP 运行 Python 脚本

如何使 PHP 永久运行脚本“忘记”一切并几乎像重新启动一样执行

无法从raspberry pi 2 ver B中的php脚本运行sudo killall python

从 PHP 运行 Photoshop 脚本?

从 php 执行的 python 脚本给出错误

如何从 mpv/lua 启动 python 脚本