Хочу передать вывод (json массив) с print`а Python в переменную PHP
Также подаю данные для ввода в Python через sys.argv
Пробовал и
exec
и
shell_exec
и
passthru
<?php
$resss = shell_exec("python3 /var/www/html/mssql.py '19' '2020' '03' '27'");
echo $resss;
?>
также в конец shell_exec добавлял 2>&1, чтобы перехватить вывод
Но почему-то, если запускать через веб-сервер, то вылазят подобные ошибки
Traceback (most recent call last): File "/var/www/html/mssql.py", line 19, in CommonProceed, JsonForm = proceed.common_proceed(OrderCategory, year, month, day, GlobalShift, JsonForm) File "/var/www/html/proceed.py", line 29, in common_proceed ProceedSum = float(ProceedSum[0]) TypeError: float() argument must be a string or a number, not 'NoneType'
Если же выполнять эти команды через
php -a
То все отрабатывает как нужно и получаю нужны вывод
php > $resss = shell_exec("python3 /var/www/html/mssql.py '19' '2020' '03' '27' 2>&1");
php > echo $resss;
{'CommonProceed': 144753.0, 'VISA': 76887.0, 'Cash': 31873.0, 'Coin': 2423.0, 'CoinDebet': 0.0, 'Cashless': 0.0, 'OtherCurrencies': [['ООО "КОМПАНИЯ"', 33570.0]], 'WaiterInfo': [['1000639', 'Атаев Давлет', 12671.0], ['1000748', 'Эркибаев Мухаммед', 22147.0], ['1000623', 'Исхакова Лилия', 13760.0], ['1000669', 'Караманов Давлет', 3473.0], ['1000612', 'Жахонгиров Равшан', 10206.0], ['1000635', 'Рустимов Фаррух', 47008.0], ['1000618', 'Асфандиярова Ландыш', 11442.0], ['1000630', 'Мусин Ратмил', 21623.0]], 'IsNull': 1, 'RestCategoryInfo': [['КУХНЯ', 101333.0], ['БАР', 43420.0], ['КАЛЬЯН', 0.0]]}
Что я неправильно делаю?