php не может выполнить скрипт Python с MySQLdb

У меня есть 2 сценария.

1 — php web-скрипты, которые собирают информацию от пользователя и выполняют скрипт на python с отправкой всех собранных данных в качестве аргументов

2 — скрипт Python, который получает аргументы из php-скрипта с использованием sys.argv и обновляет MySQL с использованием MySQLdb

Когда я запускаю скрипт Python через командную строку — он работает как шарм. Он делает все, что должен. Но когда я пытаюсь выполнить скрипт Python с использованием PHP-скрипта — ничего не происходит, пока я не удаляю импорт MySQLdb из моего скрипта Python.

Как только я удаляю «import MySQLdb» из моего скрипта python — PHP скрипт может выполнить его, и они оба работают (кроме обновления MySQL).

У вас есть и идея, что идет не так?

Постскриптум
Я пытался получить ошибку

в файле Python я использую это:

import traceback
import sys
import MySQLdb

# Some classes and functions

if __name__ == '__main__':
try:
main()
except Exception, err:
print traceback.format_exc()

и в php я использую:

$result = shell_exec("/usr/bin/python /FULL_PATH_TO/script.py $argument";
echo $result;

И все же … ничего. веб-страница просто перезагружается, не давая никакой информации

0

Решение

Я столкнулся с той же проблемой. Ключевая проблема здесь в том, что ваш скрипт на Python ничего не выводит!

и ключ, чтобы узнать, что произошло, это то, что вам нужно знать, здесь произошла ошибка, но вы не можете увидеть вывод ошибки. Вам нужно проверить этот вопрос:
PHP-скрипт не может получить вывод из Python-скрипта

краткий ответ: вам нужно выполнить exec и поместить вывод ошибки (stderr) в стандартный вывод. вам нужно сделать что-то вроде:
exec (‘python hello-numpy.py 2>&1’ );

и вы увидите проблему, которая должна заключаться в том, что для библиотеки MySQLDB требуется разрешение, которое было отклонено.

Как получить разрешение? Нужно, что, это совсем другой вопрос 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]