从Django Framework运行C ++程序

时间:2010-01-19 05:27:43

标签: c++ python django

我需要从Django Framework运行C ++程序。从某种意义上说,我在views.py中从UI获取输入。一旦我有这些输入,我需要使用我的C ++程序处理输入并使用这些结果。有可能吗?

4 个答案:

答案 0 :(得分:10)

将C ++程序编译为可执行文件,并使用python

中的subprocess模块进行调用

答案 1 :(得分:1)

您可以使用swig创建可以在python中导入的C ++模块。 另一种选择是boost :: python(但是个人,我更喜欢swig)。

答案 2 :(得分:0)

这样做的一种方法是使用os.popen。假设您的C ++可执行文件位于系统范围的路径中且名为mycpp,您可以执行以下操作:

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

然而,如果你经常调用这个命令'因为os.popen基本上要求子进程,那么这可能会在计算上变得非常快。此外,正如文档中所述,自Python 2.6以来它已被弃用,因此请谨慎行事。

答案 3 :(得分:0)

假设您使用的是* 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