首页 > 解决方案 > 在 Laravel 控制器中运行 python 脚本:“sh: 1: python: not found”

问题描述

我正在尝试使用 Symfony 进程在我的 Laravel PHP 控制器中运行 python 脚本。python 文件位于公共目录中。蟒蛇文件是:

import requests

URL = 'someURL.com'

response = request.get(url);

print(response)

这是我的 PHP 控制器中的代码:

    $process = new Process('python '.public_path('MyPython.py'));

    $process->run();

    //executes after the command finishes
    if (!$process->isSuccessful()) {
        throw new ProcessFailedException($process);
    }

    Log::error($process->getOutput());

当我运行它时,我得到了这个:

"message": "The command "python /var/www/project/public/MyPython.py" failed. Exit Code: 127(Command not found) Working directory: /var/www/project/public Output: ================ Error Output: ================ sh: 1: python: not found ",

在进行故障排除时,我创建了另一个名为“Simply.py”的 Python 脚本,它只打印出“Hello World”。当我运行时:

 $process = new Process('python '.public_path('Simply.py'));

同样的错误仍然存​​在。但是当我运行时:

 $process = new Process('python3 '.public_path('Simply.py'));

成功了!然后我尝试运行:

 $process = new Process('python3 '.public_path('MyPython.py'));

但是后来我得到了一种新类型的错误,即:

"message": "The command "python3 /var/www/project/public/MyPython.py" failed. Exit Code: 1(General error) Working directory: /var/www/project/public Output: ================ Error Output: ================ Traceback (most recent call last): File "/var/www/Matchban/public/MyPython.py", line 1, in <module> import requests ModuleNotFoundError: No module named 'requests' "

如何使用 python 命令而不是 python3 运行它,或者如何在我的 laravel 项目中导入请求模块?

标签: pythonphppython-3.xlaravelsymfony

解决方案


推荐阅读