Запустите программу на C ++ из Django Framework - PullRequest
3 голосов
/ 19 января 2010

Мне нужно запустить программу на C ++ из Django Framework. В некотором смысле, я получаю информацию от пользовательского интерфейса в views.py. Когда у меня есть эти входные данные, мне нужно обработать входные данные с помощью моей программы на C ++ и использовать эти результаты. Возможно ли это?

Ответы [ 4 ]

10 голосов
/ 19 января 2010

Скомпилируйте эту программу C ++ в исполняемый файл и вызовите модуль subprocess из python

1 голос
/ 19 января 2010

Вы можете использовать swig для создания модуля C ++, который можно импортировать в python. Альтернативой является boost :: python (но лично я предпочитаю swig).

0 голосов
/ 19 января 2010

Предполагая, что вы используете * nix, скомпилируйте вашу программу на C ++ и сохраните ее где-нибудь в вашей системе, скажем /home/rishabh/myexe.

Теперь из вашего приложения django вызовите исполняемый файл, используя модуль команд:

import commands

status, res = commands.getstatusoutput("/home/rishabh/myexe")

# status contains process status (0 for success, non-zero for unsuccesful termination) and res contains the output of the process
0 голосов
/ 19 января 2010

Один из способов сделать это - использовать os.popen . Предполагая, что ваш исполняемый файл C ++ находится в системном пути и называется mycpp, вы должны сделать что-то вроде:

results = os.popen('mycpp %s' % user_input).read()

Тем не менее, это может привести к очень быстрым вычислительным затратам, если вы часто вызываете эту команду, потому что os.popen в основном отключает подпроцесс. Кроме того, как отмечалось в документации, начиная с Python 2.6 он устарел, поэтому действуйте с осторожностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...