我正在编写一个应用程序,我用python库(wxpython专门)编写我的所有前端和GUI。对于这个应用程序,我想用C编写模型类并使用python使用编译的C代码?这怎么可以在Python中实现?从python GUI使用C编译的代码
我知道这是一个含糊不清的问题,但我正在为出发点挣扎。
我正在编写一个应用程序,我用python库(wxpython专门)编写我的所有前端和GUI。对于这个应用程序,我想用C编写模型类并使用python使用编译的C代码?这怎么可以在Python中实现?从python GUI使用C编译的代码
我知道这是一个含糊不清的问题,但我正在为出发点挣扎。
如果你使用CPython的(Python中最流行的版本),你需要学习CPython C API。其他的python实现可能会或可能不支持C调用。您也可以使用易于学习的ctypes库,但也更严格,可能不支持您需要的所有内容。
你可以尝试Cython,这基本上是用Python对于C类型和调用嵌入式支持(它通过CPython的API)。
你能严格独立的设计(蟒部分)和代码(C++的部分)是这样的:
写一个完整的C++ PROGRAMM,在终端/主机的作品,然后让蟒蛇的应用程序调用这些C++ - 终端程序通过os.Popen。
所以,如果你是PROGRAMM它这样做一个计算器:
(Python的GUI)5 + 5 - > my_c_programm.exe “5 + 5” - >(返回)10 - >(蟒蛇GUI)显示
这样你可以用你的PROGRAMM与不贵。
它更容易和比你的C++ PROGRAMM嵌入的Python或C++扩展Python更快。
我基本上做同样的事情在我目前的项目,但像这样的:
PHP:我webinterface 蟒蛇:对结构和逻辑,操作方便 C++:重计算,我需要速度
所以PHP - >蟒蛇 - > C++
和它的作品对我非常好:)
[用Cython(http://cython.org/)可能是一个选择。 – ely 2012-03-19 19:03:11
你在寻找* ctypes *吗? http://docs.python.org/library/ctypes.html – Matthias 2012-03-19 19:03:48