首页 > 解决方案 > 通过 Laravel 控制器执行 Python 脚本

问题描述

这可能是一个简单的问题,但我找不到适合我的解决方案。所以我想通过 laravel 中的控制器启动一个 python 脚本。到目前为止,我尝试了 exec()、shell_exec() 和这个:

$cmd = "py pathtoSkript/example.py";

  if (substr(php_uname(), 0, 7) == "Windows"){
      pclose(popen("start /B ". $cmd, "r"));
  }
  else {
      exec($cmd . " > /dev/null &");
  }

我的python版本是:Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (I

当进程启动时,它应该只像你输入的那样运行脚本:

py yourPath/example.py在 Windows 外壳中。在我的情况下,shell_exec() 会占用当前会话并且 exec 不起作用。当我通过 pycharm 执行脚本时,该脚本工作正常。

标签: pythonlaravel

解决方案


尝试这个

 $command = escapeshellcmd('py pathtoSkript/example.py');
 $output = shell_exec($command);
 $output;

参考链接https://www.php.net/manual/en/function.escapeshellcmd.php


推荐阅读