我正在尝试为poker-eval编写一个Python包装器,这是一个静态库。我在ctypes上找到的所有文档都表明它适用于共享/动态库。是否有静态库的ctypes?
我知道cython,但是我应该使用它还是将poker-eval重新编译成动态库,以便我可以使用ctypes?
谢谢,
麦克
答案 0 :(得分:8)
选择取决于你。如果你能够将库重新编译为共享对象,我建议,因为它将最小化你必须维护的非python代码。否则,您将需要构建一个链接到静态库并包装它公开的函数的python扩展模块。
你提到过Cython;如果您走这条路线,这是相关的手册页:
http://docs.cython.org/src/tutorial/clibraries.html
还有SWIG和Pyrex。
答案 1 :(得分:1)
我不能肯定地说那里没有模块,但是动态库的优势(使用更少的空间,可以在不重新编译依赖程序的情况下进行更新)这样你就可以做得更好了。