PyType_Check() 替代 Python3.5 绑定

PyType_Check() alternative for Python3.5 bindings

我正在使用 Crystal 语言开发一个项目,其中嵌入了 Python3.5 链接 Python .so 库(没有 Python.h header)。 看起来 PyType_Check() 和其他检查函数实际上是宏,因此在链接库时它们是不可见的。 还有其他替代方法或解决方法吗?

确切地说,C 宏在 Crystal 中不可用。但是,您只需要从 Crystal 调用它们。在编译的 C 库中,它们已经展开。

因此您可以在 Crystal 中实现这些宏。当然,您必须对嵌套宏进行一些解包。 据我所知,没有简单的解决方案。例如 Bindgen 也会忽略类似函数的宏,因为它们不能轻易转换为 Crystal.