用于静态库的ctypes
我正在尝试为 poker-eval 这个 C 语言的静态库写一个 Python 的封装。根据我找到的关于 ctypes 的所有文档,它主要是用来处理共享库或动态库的。那么,有没有类似于 'ctypes' 的东西可以用在静态库上呢?
我知道有 Cython 这个工具,但我应该使用它,还是把 poker-eval 重新编译成动态库,这样我就可以用 ctypes 呢?
2 个回答
1
我不能确定外面有没有相关的模块,但动态库的好处是很明显的,比如它占用的空间更小,而且可以在不重新编译依赖它的程序的情况下进行更新。所以,选择使用动态库可能是更好的选择。
9
选择权在你自己手里。如果你有能力把这个库重新编译成共享对象,我建议你这样做,因为这样可以减少你需要维护的非Python代码。否则,你就需要构建一个Python扩展模块,它会链接到这个静态库,并包装它所提供的功能。
你提到过Cython;如果你选择这个方向,这里有相关的手册页面:
http://docs.cython.org/src/tutorial/clibraries.html
还有SWIG和Pyrex这两个工具。