Я пытаюсь выполнить скрипт Python в проекте Laravel 5.8, но у меня проблемы с классом Symfony/process.
По сути, я хочу запустить этот скрипт Python, который принимает форму Excel из папки хранилища.
Моя первая попытка была такой
$process = new Process('C:\Python\python.exe C:\Users\"my path"\laravel\storage\app\images\cargaExcel.py');
$process->run();
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process);
}
echo $process->getOutput();
И ошибка
Fatal Python error: _Py_HashRandomization_Init: failed to get random numbers to initialize Python
Я также пробовал с shell_exec(), и если два файла (скрипт excel и python находятся в общедоступном пути - app/public), это работает.
Я думаю, проблема в том, что python выполняется только в папке приложения/общедоступной, поэтому я не знаю, как запустить это по другому пути.
Вывод Python говорит мне, что:
Working directory: C:\Users\"my path"\laravel/public
Кто-нибудь знает, как это запустить?
как насчет $cwd = getcwd(); chdir(new wordking direcotry); run python; chdir($cwd) ?
@apokryfos спасибо, это способ решить.
Возможный дубликат Запуск скрипта Python в Laravel, Как запустить скрипт Python в Laravel? и т. д.
создайте виртуальную среду venv python и запустите этот путь к файлу python в виртуальной среде из экземпляра класса процесса





Проверьте этот stackoverflow.com/questions/41020068/…