Я пытаюсь сделать что-то для проекта, на который я не могу найти ответ после поиска и пробую другой код.
Я пытаюсь получить строку от клиента (отправленную по почте, и я должен использовать этот метод, приказы учителя), а затем скомпилировать эту строку, используя exec () в файле php. По сути, я «оцениваю» фрагмент кода Python, отправленный мне в виде строки. Я также делаю это на сервере файловой системы Andrew (afs).
Я не очень разбираюсь в python, в основном использую другие языки, но я могу сделать исполняемый файл python с помощью php exec, а также просто скомпилировать его с помощью cython (это то, что есть на машинах linux в нашей школе, не уверен, стоит ли мне это делать использовать этот). Я получил это для работы с файлами.
Моя проблема в том, что я не могу просто скомпилировать строку без ее запуска. я могу сделать
python -c "print('Hello World')"
просто выполнить строку где «печать («Hello World»)«будет строковой переменной php
но я не уверен, как просто проверить синтаксические ошибки.
Я старался python -m py_compile -c "print('Hello World')"
но это не нравится тому, что похоже на -m на py_compile не любит строки, только файлы
Таким образом, помимо создания нового файла .py для каждой строки, которую отправляет мне клиент, и работы над этим, есть лучший способ без создания новых файлов или создания отдельного скрипта Python для обработки этого. Я пытаюсь сделать это в одном файле PHP. Это может быть большой ноно, выполняющий скрипты командной строки python для строк, так что я мог бы также спросить.
Вы можете использовать модуль синтаксического анализа. Напишите такой скрипт:
import sys
import parserdata = sys.argv[1]
try:
parser.suite(data)
except SyntaxError as e:
print(e)
Вызывать как это
python3.6 /tmp/test.py "import math"
Других решений пока нет …