我有一个调用Python脚本的PHP文件,然后返回输出到PHP的值。
$price = system("/usr/local/bin/python3 /full/path/script.py", $retval);
出于测试目的,由于此错误,我在Python脚本中注释了所有内容,除了打印要返回的字符串。如果我这样,它会返回该字符串,但如果我取消注释该行
from bs4 import BeautifulSoup
然后失败了。我拥有的其他导入,用于sys和请求,没有任何问题,但是当我导入BeautifulSoup时,没有返回任何内容,我得到$ retval 1.从命令行运行完整的Python脚本工作完美但是当我使用PHP执行该命令失败。
什么会阻止它在PHP中正常工作,但在命令行中完成后它可以正常工作?我已经确保bs4安装了pip但我知道无论如何,因为它在命令行中工作正常。
答案 0 :(得分:0)
试试这个。这是我唯一一次为我工作的命令。 确保python路径正确。在我的mashine我安装了anaconda包,所以路径是不同的。请记住,如果您在Apache服务器上运行php,则将该命令称为apache" www-data"用户而不是您登录的用户。
exec('/usr/local/bin/python3 /full/path/script.py 2>&1', $out);