2

所以基本上,我正在尝试用 Python 编写自己的 GUI 包装器(使用 GTK+,但我认为这不相关),用于用 C++ 编写并由用户编译成共享对象文件的 API(在 linux [* nix?我不太确定它在macs上是如何工作的])或一个dll(在windows中),你应该能够参考自己使用API​​。经过一段时间的 Cython 尝试后,我可以编写自己的扩展,只要它只是一个文件,但我无法在网上找到任何关于使用多个文件的内容(因为这显然是,因为任何真正的项目将是)编译成单个 .so 可以导入到 Python 项目中。我是否需要手动检查并使用 Cython 并为每个 .cpp 文件创建 .pyx 文件(其中有很多),将它们编译成 cpp 文件,然后编辑然后使用 make 文件将它们编译成 .so 文件,还是有更自动化的方法?(ps 我尝试用 Cython 分别编译每个文件,但它似乎不喜欢“#include <路径/文件>”符号,因此无法编译大部分文件)

其他信息:我已经能够使用 ctypes 与库进行交互,但这感觉非常hackish和非pythonic,无论如何我想获得更多关于 Cython 的经验,因为它似乎是一个非常有用的资产.

4

1 回答 1

0

您可以创建一个名为“yourmodule.pyx”的文件,将所有其他文件重命名为 pxi,然后执行以下操作:

include "other1.pxi"
include "other2.pxi"

然后,您将只有一个文件需要 cythonize 和编译:yourmodule.pyx。

于 2011-03-02T00:22:52.603 回答