我正在尝试为 FLAC 创建自己的包装器,以便我可以在自己的 Python 代码中使用 FLAC。
我首先尝试使用 ctypes,但它显示了一个非常奇怪的库界面,例如FLAC 流和文件的所有初始化函数都变成了一个函数,没有关于如何初始化它的实际信息。特别是因为它需要对流解码器的引用,但 Python 无法存储指针(BZZZT! http://docs.python.org/library/ctypes.html#fundamental-data-types),因此我无法存储指向流解码器的指针。不同的 init 函数具有不同数量的参数并且某些参数类型不同,这并没有帮助。它还有很多枚举和结构,我不知道如何将它们放入我的代码中。
我一直在研究 Pyrex,但我在指针方面遇到了同样的问题,但我想我已经解决了它。文件也不小,而且还不完整。 http://github.com/Bocom/zet-subou-/blob/db6d1d37068c936f1e3a98b09ec038b38b7d25e0/flac_wrapper.pyx
因此,我正在寻找替代方案或指南来帮助我更好地理解上述方法。如果我能得到推荐和/或帮助,那真的会有帮助。
Python无法存储指针,因此我无法存储指向流解码器的指针
ctypes有指针,并且 ctypes 可用于包装现有的 C 库。只是提示,您需要将所有相关的 C 结构包装/重写到 ctypes.Structure 中。
看一下例子:code.google.com/p/pyxlib-ctypes http://code.google.com/p/pyxlib-ctypes/ and code.google.com/p/pycairo-ctypes http://code.google.com/p/pyxlib-ctypes/。更多信息如何映射函数/过程及其argtypes and restype at http://docs.python.org/library/ctypes.html http://docs.python.org/library/ctypes.html
我一直在研究 Pyrex,但我在指针方面遇到了同样的问题,但我想我已经解决了它。文件也不小,而且还不完整。
cython如果您想要干净的语法,可能就是您所需要的。www.cython.org http://www.cython.org
因此,我正在寻找替代方案或指南来帮助我更好地理解上述方法。如果我能得到推荐和/或帮助,那真的会有帮助。
swig另一方面,总是可以使用,但如果您不习惯它会更复杂。www.swig.org http://www.swig.org
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)