Symfony Process类构造参数错误求助:传入字符串而非数组
解决Symfony Process组件构造函数参数错误问题
错误原因
你遇到的错误是因为Symfony Process组件的构造函数要求第一个参数必须是数组类型,但你传入了字符串格式的脚本路径。
修复方法
将命令拆分为数组形式,把执行器(如python)和脚本路径分开作为数组元素:
修改后的代码
<?php namespace App\Http\Controllers\Admin; use App\Models\Order; use App\Models\OrderItem; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\DB; use Symfony\Component\Process\Exception\ProcessFailedException; use Symfony\Component\Process\Process ; class ChartController extends Controller { public function PythonScript() { // 根据你的Python环境,可选择'python'或'py'命令 $process = new Process(['python', 'C:\Users\ismail\Downloads\Untitled4.py']); $process->run(); if (!$process->isSuccessful()) { throw new ProcessFailedException($process); } $data = $process->getOutput(); dd($data); } }
额外说明
- 若Windows系统中使用多版本Python,可能需要将数组第一个元素改为
'py' - 数组形式的命令能避免路径含空格等特殊字符导致的解析问题
内容的提问来源于stack exchange,提问作者اسماعيل شيخ علي
相关产品推荐
相关产品推荐

