如何自动编译python/c扩展?

2 投票
1 回答
618 浏览
提问于 2025-04-18 17:54

我写了一个Python和C语言结合的扩展文件,叫做lda_model.c。

然后我添加了一个setup.py文件:

from setuptools import setup, Extension

modules = [Extension('c_lda_model', sources=["lda_model.c"])]

setup(ext_modules=modules)

现在我需要通过下面的方式来编译这个C代码:

python setup.py build

在运行调用这个C代码的Python代码之前。

有没有什么方法可以在运行Python代码的时候,自动编译这个调用的C扩展呢?

1 个回答

2

用标准的方法写扩展是做不到的,这就是你现在所做的事情。

不过,还有其他几种方法可以用原生代码扩展Python,这些方法是在执行时进行编译的。

其中一个例子是Weave,它是Scipy的一部分。如果你去找的话,还有其他的方法。

撰写回答