我想知道如何使用 php 代码运行 python 脚本。我尝试过不同的选择,例如
$output = exec("python /var/GAAutomationScript.py");
$command = escapeshellcmd('/var/GAAutomationScript.py');
$output = shell_exec($command);
但是无法运行python脚本。我的应用程序是在 Laravel 中。是否可以使用 Laravel 调度程序作业运行 python 脚本,例如使用 artisan 命令?
关于您的问题需要提及的一些事情:
symfony/process
而不是直接使用 shell_exec 。它已经在 Laravel 中可用。您可以轻松检查命令是否成功并获得字符串格式等标准输出www-data
,你的 python 脚本是 ubuntu.nbody
,然后它会检查 python 脚本具有哪些权限。是否允许本例中除ubuntu
以外的用户运行它。 symfony/process
运行 python 脚本的代码片段。然后运行它并调试错误。一旦它起作用了,你就可以像 Laravel 的 cron jon 中一样添加它。请参阅此了解有关调度 artisan 命令的更多信息。
您还可以避免创建 artisan 命令并直接添加 shell,因为它内部使用
symfony/process
。 请参阅此以获取参考
您可以尝试使用 laravel Process Synmfony 类执行 python 脚本:
<?php
use Symfony\ Component\ Process\ Process;
use Symfony\ Component\ Process\ Exception\ ProcessFailedException;
public function testPythonScript()
{
$process = new Process(['python3', '/path/to/your_script.py', 'arg1', 'arg2']);
$process->run();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
$data = $process->getOutput();
dd($data);
}