作者yungyuc (酷狗喵千代)
看板Python
标题Re: [问题] Python可以用来整合C Matlab?
时间Wed Mar 11 22:11:29 2009
※ 引述《sbrhsieh (sbr)》之铭言:
: ※ 引述《huskyching (紮马尾)》之铭言:
: : 想请教一个问题
: : 如果现在写了很巨大的程式
: : 其中有些是用C写 有些是用matlab写
: : 那python适合用来整合他们吗??
: : 例如写了 2个C语言程式 C1 C2 1个Matlab程式 M1
: : C1去执行M1 M1值要给C2用
多巨大?
十万行以上,照原来的 Matlab/C 继续干大概最省时。
一万行左右的东西,照不同的结构可以有不同的作法。
是否有模组化?若无,序列的 workflow 有多少分支?
可以进一步讨论。
一千行左右的话,重写成 Python/C 的版本比较快。
所谓的快,是以不要超过一个工作周为准。
: : 我估狗的结果都是产生dll档直接给C或matlab用 没提到python
: : 看了一些python的教学也没提到这回事 囧
http://www.python.org/doc/2.5.4/ext/ext.html
注意,既然考虑从 Matlab 转到 Python,
numpy/scipy/matplotlib 大概会是必用的程式库。
如果不想给自己找麻烦的话,请先用 2.5,不要去试 2.6,
可能会遇到一些相依性的问题。3.0 想都不要想。
: : 请问python适合用来整合C与matlab吗??
: 如果你原本 C 程式与 matlab 之间的整合已经没问题,那麽你需要的只是 Python
: 与 C 程式的结合。
: 最基本的作法是透过 Python C API,以 C 来写 glue code 把 C 语言作出来的功能
: 包装成 Python module/class,给 Python 端的程式使用。
: 另外一个作法是不自己以 C 写 glue code,直接使用 ctypes 之类的 FFI 套件,
: 透过 FFI 使得 Python code 可以去使用其他语言制作出来的 native code。
: 比如这一篇: #19fI-1D_ 旧文中,Python 程式透过 ctypes 来调用 Windows/win32
: API。
附议 ctypes 是比较方便的作法。
FF 也不限一定要用 C,只要符合 ctypes 定义的 calling convention 就可以了。
这部分的文件请查 library reference。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 128.146.115.41
※ 编辑: yungyuc 来自: 128.146.115.41 (03/11 22:15)