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

mic*_*c_e 4 python cython

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

$ cython --embed main.pyx
$ grep 'int main' main.c
int main(int argc, char** argv) {
Run Code Online (Sandbox Code Playgroud)

但是,当您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
$
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?

mic*_*c_e 7

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

看起来Cython期望一个特定的值Options.embed:

Options.embed = "main"
Run Code Online (Sandbox Code Playgroud)

  • 好吧,但这到底意味着什么?`Options.embed="main"` 去哪里了? (2认同)