Вызов программы на Python из PHP - PullRequest
2 голосов
/ 25 июня 2010

У меня есть версия алгоритма A *, который строит график дорожной и велосипедной сети Великобритании в списках Python.Инициализация занимает около 30 секунд, но после ее завершения можно очень быстро найти кратчайший путь между любыми двумя вершинами.Идентификаторы начальной и конечной вершин предоставляются PHP.

Я пытаюсь найти лучший способ связи между PHP и программой Python.Я хочу выполнить фазу инициализации только при запуске сервера Apache, поэтому мой вопрос: как мне поддержать программу python и запросить маршруты у нее через php?У меня есть настройка GLAMP.

Ответы [ 4 ]

2 голосов
/ 25 июня 2010

Самый простой способ, которым я могу придумать, это XMLRPC. Python ужасно упрощает настройку сервера XMLRPC, и есть php_xmlrpc для привязок на стороне PHP ...

def calculate_path(v1, v2):
  return [v1, ..., v2]

from SimpleXMLRPCServer import SimpleXMLRPCServer
server = SimpleXMLRPCServer(('localhost', 9393))
server.register_function(calculate_path)
server.serve_forever()

и вы работаете и должны быть в состоянии сделать вызов XMLRPC для calculate_path на http://localhost:9393/ из вашего приложения PHP.

0 голосов
/ 25 июня 2010

Вы можете сделать что-то столь же простое, как веб-сервер REST в Python, используя web.py:

http://webpy.org/

, а затем вызвать это через PHP, что сделает всю задачу очень простой.

См. Это для получения дополнительной информации:

http://johnpaulett.com/2008/09/20/getting-restful-with-webpy/

0 голосов
/ 25 июня 2010

Я бы сделал сервер "бэкэнд" из вашего приложения Python.Существует много способов вызова приложения Python:

Это позволяет избежать штрафов при запускеПриложение Python.

0 голосов
/ 25 июня 2010

Проверьте этот вопрос: Вызов Python в PHP

Также проверьте это расширение: http://www.csh.rit.edu/~jon/projects/pip/

Я не знаю, хостинговая ли вы средапозволяет добавлять новые расширения PHP, но вы поняли идею.

...