【发布时间】:2019-11-17 14:08:22
【问题描述】:
我是 Cython 的新手,但通过关注此 basic guide from the official docs 使其正常工作:
它说的是: “Cython 有一种方法可以可视化与 Python 对象和 Python 的 C-API 进行交互的位置。为此,请将 annotate=True 参数传递给 cythonize()。它会生成一个 HTML 文件。”
我很惊讶我不能只用谷歌搜索这个,或者 stackoverflow 上没有人问过这个问题。但我不知道如何让它工作。它没有具体显示它想要什么。所以我尝试了最明显的语法(在 Setup.py 中):
from distutils.core import setup
from Cython.Build import cythonize
setup(
ext_modules = cythonize("gpcython.pyx", annotate=True)
)
虽然这不会引发错误,但我也没有看到任何 HTML 正在生成。
我在 Windows 上使用最新版本的 Python 3.7 和 Cython 0.29.12。
https://cython.readthedocs.io/en/latest/src/tutorial/cython_tutorial.html
【问题讨论】:
-
这可能是因为没有构建任何内容:遗憾的是更改 setup.py 不会导致完全重建。需要添加
--force,即python setup.py build_ext --inplace --force,那么pyx-file旁边就是html。 -
很确定这不是问题。我确实注意到了这一点(感谢 --force 开关!)但我刚刚删除了构建并且它重新开始。结果相同。没有 HTML。
-
我尝试添加:import Cython.Compiler.Options Cython.Compiler.Options.annotate = True 没有效果
-
setup.py --force 对我不起作用。但是,删除生成的 out.c 文件会使创建 .html 文件的 annotate=True 工作。
标签: python-3.x cython cythonize