如何使用cythonize启用`--embed`?

时间:2015-07-09 02:37:33

标签: python cython

在命令行上调用cython时,可以告诉它创建一个嵌入Python解释器的int main()方法:

$ cython --embed main.pyx
$ grep 'int main' main.c
int main(int argc, char** argv) {

但是,当您直接import Cython时,例如在distutils setup.py脚本中,似乎忽略了embed选项:

$ python3
>>> from Cython.Compiler import Options
>>> Options.embed = True
>>> from Cython.Build import cythonize
>>> cythonize('main.pyx')
[1/1] Cythonizing main.pyx
>>>
$ grep 'int main' main.c
$

我在这里做错了什么?

1 个答案:

答案 0 :(得分:6)

我从Cython的消息来源中找到了它。

看起来Cython期望Options.embed的具体值:

Options.embed = "main"