静态库的ctypes?


问题内容

我试图为扑克评估,交流静态库编写Python包装器。我可以在ctypes上找到的所有文档都表明它可以在共享/动态库上工作。静态库有ctypes吗?

我了解cython,但是我应该使用cython还是将poker-eval重新编译为动态库,以便可以使用ctypes?

谢谢,

麦克风


问题答案:

选择实际上取决于您。如果您有能力将库重新编译为共享库,我建议您这样做,因为它将最大程度地减少您必须维护的非Python代码。否则,您将需要构建一个python扩展模块,该模块链接到静态库并包装其公开的功能。

您提到了Cython;如果您选择该路线,则为相关的手册页:

http://docs.cython.org/src/tutorial/clibraries.html

还有SWIG和Pyrex。