python - 在 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 项目中导入请求模块?
解决方案
推荐阅读
- python - 400 Error while reading data, error message: CSV table遇到太多错误,放弃。行数:29274;错误:1
- azure - 如何在构建定义工艺品中包含逻辑应用程序开发和 uat 参数 JSON 文件
- python - c++ 版本的 python 的 exec() 函数
- python - 根据不同年份的同一时期的值对时间序列的缺失值进行插值
- javascript - 使用另一个组件更新/刷新一个组件
- r - 循环没有给出所需的结果
- settings - 从 Wear 应用程序启动 OS 的连接屏幕
- javascript - Javascript 或 jquery 加载器
- c# - stream.readtimeout 引发了“system.invalidoperationexception”类型的异常
- jenkins - 在 Jenkins 中,远程访问 API 和流水线 REST API 有什么区别