2010-01-19 56 views

回答

10

編譯C++程序來執行,因此從蟒蛇

1

您可以使用痛飲創建可以在Python中導入的C++模塊subprocess模塊調用。 另一種方法是boost :: python(但是personnaly,我更喜歡swig)。

0

這樣做的一種方法是使用os.popen。假設你的C++可執行文件在系統範圍的路徑並命名爲mycpp,你會做這樣的事情:

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

然而,這有可能會耗費計算真正的快,如果你調用這個命令常常「原因os.popen基本上叉關閉一個子進程。另外,正如文檔中指出的那樣,自Python 2.6以來它已被棄用,因此謹慎行事。

+2

它不僅是過時了,我們沒有理由去使用它。正如S.Mark的回答中所提到的,「subprocess」模塊中提供了完全相同的功能。 –

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